namespace FNZCM.Shared.Helpers { public static class HumanReadHelper { public static string NullOrEmptyEscape(this string me, string escape) => string.IsNullOrWhiteSpace(me) ? escape : me; public static string SecondToDur(this int sec) => ((int?)sec).SecondToDur(); public static string SecondToDur(this int? sec) { if (sec.HasValue == false) return string.Empty; var ts = TimeSpan.FromSeconds(sec.Value); return ts.Hours > 0 ? $"{Math.Floor(ts.TotalHours):00}:{ts.Minutes:00}:{ts.Seconds:00}" : $"{Math.Floor(ts.TotalMinutes):00}:{ts.Seconds:00}"; } public static string BytesToFileSize(this long length) => ((long?)length).BytesToFileSize(); public static string BytesToFileSize(this long? length) { if (length.HasValue == false) return string.Empty; string[] sizes = { "B", "KB", "MB", "GB", "TB" }; double len = length.Value; int order = 0; while (len >= 1024 && order < sizes.Length - 1) { order++; len = len / 1024; } // Adjust the format string to your preferences. For example "{0:0.#}{1}" would // show a single decimal place, and no space. string result = $"{len:000.00}{sizes[order]}"; return result; } } }