@context.Author @FormatDate(context.When) @FormatEntry(context) @code { [Parameter] public InspectionRegister Register { get; set; } [Parameter] public string ItemId { get; set; } private System.Timers.Timer Timer = new(1000); Grid Grid = default!; private async Task> EmployeesDataProvider(GridDataProviderRequest request) { var entries = Register.GetEntriesOrdered(ItemId); return await Task.FromResult(request.ApplyTo(entries)); } protected override void OnInitialized() { base.OnInitialized(); Timer.Elapsed += async (object? sender, ElapsedEventArgs e) => { await InvokeAsync(async() => { await Grid.RefreshDataAsync(); StateHasChanged(); }); }; Timer.Enabled = true; } public string FormatDate(DateTime dt) { return dt.ToString("M MMM hh:mm"); } public string FormatEntry(InspectionEntry e) { if (e.Type == InspectionEntry.EntryType.Attachement) return "Ajout d'une pièce jointe."; else if(e.Type == InspectionEntry.EntryType.Set) return $"Changement de l'état vers {FormatState(e.State)}."; else return e.Type.ToString(); } public string FormatState(ItemAnswer.State? s) { if (s is null) return "(null)"; else if (s == ItemAnswer.State.NotAnswed) return "non répondu"; else if (s == ItemAnswer.State.Compliant) return "conforme"; else if (s == ItemAnswer.State.PartiallyCompliant) return "partiellement conforme"; else if (s == ItemAnswer.State.Improper) return "non conforme"; else if (s == ItemAnswer.State.Invalid) return "sans objet"; else if (s == ItemAnswer.State.Ignored) return "non instruit"; return s.ToString(); } }