@inject Display Display @* Long operations with progress (BACKUP, RESTORE, DBCC …). Logins are shown locally only. *@ @if (Operations.Count == 0) {

@Empty

} else { var now = DateTime.UtcNow; @foreach (var o in Operations) { var running = o.IsRunning(now); }
KommandoDatabaseStartetVarighedFærdigForventet slutLogin
@o.Command @(o.DatabaseName ?? "–") @Display.Time(o.StartedAt) @Duration(running ? now - o.StartedAt : o.Duration) @(running ? $"{Display.Number(o.PercentComplete, 1)} %" : "afsluttet") @(running && o.EstimatedEnd is { } end ? Display.Time(end) : "–") @(o.LoginName ?? "–")

Operationer, som SQL Server viser fremskridt for (percent_complete): backup, restore, DBCC, indexvedligehold med REORGANIZE, shrink og rollback. Målt hvert minut; varigheden af afsluttede er til sidst set.

} @code { [Parameter, EditorRequired] public IReadOnlyList Operations { get; set; } = []; [Parameter] public string Empty { get; set; } = "Ingen langvarige operationer."; private static string Duration(TimeSpan value) => value.TotalHours >= 1 ? $"{(int)value.TotalHours} t {value.Minutes} min" : $"{Math.Max(0, (int)value.TotalMinutes)} min"; }