@using SteUp.Shared.Core.Dto @using SteUp.Shared.Core.Entities @using SteUp.Shared.Core.Helpers @* Card di elenco (STILE_UI §6.5). Il titolo e' l'entita' — il punto vendita — non il tipo di record. I conteggi stanno sempre a vista: il rilevatore deve sapere quanto ha davanti senza contare. *@
@Ispezione.CodMdep

@Descrizione

@if (!string.IsNullOrWhiteSpace(Indirizzo)) {

@Indirizzo

}
@if (DaInviare > 0) { } @if (Bozze > 0) { }
@code { [Parameter] public Ispezione Ispezione { get; set; } = new(); [Parameter] public EventCallback OnClick { get; set; } private bool Tappable => OnClick.HasDelegate; private PuntoVenditaDto? _puntoVendita; // Il punto vendita puo' mancare dalla cache di riferimento (primo avvio // offline): si degrada al codice invece di far fallire la card. private string Descrizione => _puntoVendita?.Descrizione.IsNullOrEmpty() == false ? _puntoVendita.Descrizione! : Ispezione.CodMdep; private string? Indirizzo => _puntoVendita is null ? null : string.Join(" · ", new[] { _puntoVendita.Indirizzo, _puntoVendita.Citta } .Where(x => !x.IsNullOrEmpty())); private int DaInviare => Ispezione.Schede.CountDaInviare(); private int Bozze => Ispezione.Schede.CountBozze(); private string SchedeLabel => Ispezione.Schede.Count == 1 ? "1 scheda" : $"{Ispezione.Schede.Count} schede"; protected override void OnParametersSet() { _puntoVendita = SteupDataService.PuntiVenditaList.Find(x => x.CodMdep != null && x.CodMdep.EqualsIgnoreCase(Ispezione.CodMdep) ); } private Task OnCardClick() => Tappable ? OnClick.InvokeAsync(Ispezione) : Task.CompletedTask; }