Initial version

This commit is contained in:
Sithis 2026-10-15 05:46:35 +02:00
commit e5b6226a85
68 changed files with 7338 additions and 0 deletions

View file

@ -0,0 +1,32 @@
using System.Globalization;
namespace DataTransfer.Client.Services;
public static class DisplayFormat
{
public static string Bytes(long bytes) => bytes switch
{
>= 1024L * 1024 * 1024 => string.Create(CultureInfo.InvariantCulture, $"{bytes / 1024d / 1024d / 1024d:0.#} GB"),
>= 1024 * 1024 => string.Create(CultureInfo.InvariantCulture, $"{bytes / 1024d / 1024d:0.0} MB"),
>= 1024 => string.Create(CultureInfo.InvariantCulture, $"{bytes / 1024d:0.0} KB"),
_ => $"{bytes} B"
};
public static string Duration(TimeSpan duration) =>
duration switch
{
{ TotalHours: >= 1, Minutes: 0, Seconds: 0 } => string.Create(CultureInfo.InvariantCulture, $"{duration.TotalHours:0} h"),
{ TotalMinutes: >= 1, Seconds: 0 } => string.Create(CultureInfo.InvariantCulture, $"{duration.TotalMinutes:0} min"),
_ => string.Create(CultureInfo.InvariantCulture, $"{duration.TotalSeconds:0} s")
};
public static string Countdown(TimeSpan remaining)
{
if (remaining < TimeSpan.Zero)
{
remaining = TimeSpan.Zero;
}
return remaining.ToString(remaining.TotalHours >= 1 ? @"h\:mm\:ss" : @"mm\:ss", CultureInfo.InvariantCulture);
}
}