36 lines
1.2 KiB
C#
36 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|