@page "/portal/rapporter/support"
@attribute [Authorize]
@using SQLInsight.Hub.Support
@inject PortalQueries Queries
Supportrapport · SQLInsight Hub
@if (_report is null)
{
return;
}
Supportrapport
Sager oprettet og lukket i perioden, åbne sager nu og hvor hurtigt sagerne blev løst.
Løsningstid er tiden fra oprettelse til lukning for sager lukket i perioden. Tider er UTC.
@_report.Total.Createdoprettet
@_report.Total.Closedlukket
@_report.Total.OpenNowåbne nu
@SupportReport.Duration(_report.Total.MedianResolution)median løsningstid
@SupportReport.Duration(_report.Total.AverageResolution)gennemsnitlig løsningstid
Pr. kunde
@if (_report.Customers.Count == 0)
{
Ingen sager i perioden.
}
else
{
| Kunde | Oprettet | Lukket | Åbne nu |
Gennemsnit | Median | Ældste åbne | Oprettet af kunden |
@foreach (var c in _report.Customers.Append(_report.Total))
{
| @if (c.CustomerId is { } id) { @c.Customer } else { @c.Customer } |
@c.Created |
@c.Closed |
@c.OpenNow |
@SupportReport.Duration(c.AverageResolution) |
@SupportReport.Duration(c.MedianResolution) |
@SupportReport.Duration(c.OldestOpenAge) |
@(c.CustomerCreatedShare is { } share ? share.ToString("P0", Danish) : "–") |
}
}
Sager i perioden
@if (_report.Cases.Count == 0)
{
Ingen.
}
else
{
| Sag | Kunde | Titel | Kilde | Oprettet | Lukket | Løsningstid |
@foreach (var c in _report.Cases)
{
| @c.Reference |
@c.Customer |
@c.Title |
@(c.Source == SQLInsight.Contracts.SupportCaseSources.Customer ? "Kunde" : "SEOSoft") |
@c.CreatedAt.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture) |
@c.ClosedAt?.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture) |
@(c.ClosedAt is null ? "åben" : SupportReport.Duration(c.ResolutionTime)) |
}
}
@code {
private static readonly CultureInfo Danish = CultureInfo.GetCultureInfo("da-DK");
[SupplyParameterFromQuery] public DateTime? Fra { get; set; }
[SupplyParameterFromQuery] public DateTime? Til { get; set; }
[SupplyParameterFromQuery] public int? Kunde { get; set; }
private SupportReportResult? _report;
private IReadOnlyList<(int Id, string Name)> _customers = [];
private string CsvUrl =>
$"/portal/actions/reports/support.csv?fra={_report!.From:yyyy-MM-dd}&til={_report.To.AddDays(-1):yyyy-MM-dd}{(Kunde is { } k ? $"&kunde={k}" : "")}";
protected override async Task OnInitializedAsync()
{
var (from, to) = SupportReportPeriod.Resolve(Fra, Til, Queries.Now);
_report = await Queries.SupportReportAsync(from, to, Kunde);
_customers = await Queries.CustomerNamesAsync();
}
}