namespace MxGateway.Server.Dashboard.Components; public static class DashboardDisplay { public static string DateTime(DateTimeOffset? value) { return value.HasValue ? value.Value.UtcDateTime.ToString("yyyy-MM-dd HH:mm:ss 'UTC'", System.Globalization.CultureInfo.InvariantCulture) : "-"; } public static string Duration(TimeSpan value) { return value.TotalDays >= 1 ? value.ToString(@"d\.hh\:mm\:ss", System.Globalization.CultureInfo.InvariantCulture) : value.ToString(@"hh\:mm\:ss", System.Globalization.CultureInfo.InvariantCulture); } public static string Text(string? value) { return string.IsNullOrWhiteSpace(value) ? "-" : value; } public static string Count(long value) { return value.ToString("N0", System.Globalization.CultureInfo.InvariantCulture); } public static long MetricValue(DashboardSnapshot snapshot, string name, string? dimension = null) { return snapshot.Metrics.FirstOrDefault(metric => string.Equals(metric.Name, name, StringComparison.Ordinal) && string.Equals(metric.Dimension, dimension, StringComparison.Ordinal))?.Value ?? 0; } }