@using SteUp.Shared.Components.Layout @using SteUp.Shared.Components.SingleElements.Card @using SteUp.Shared.Core.Dto @using SteUp.Shared.Core.Enum @using SteUp.Shared.Core.Interface.LocalDb @inject IIspezioniService IspezioniService @* Scelta del punto vendita: schermata intera, non un riquadro. L'elenco e' lungo e si scorre in piedi: serve tutto lo spazio e un campo di ricerca grande quanto il pollice. *@
@if (!FilterText.IsNullOrEmpty()) { }
@if (FilteredList is null) { } else if (FilteredList.Count == 0) {

Nessun punto vendita

Nessun risultato per "@FilterText".

Azzera la ricerca
} else {
}
@code { [CascadingParameter] private IMudDialogInstance MudDialog { get; set; } = null!; private List? FilteredList { get; set; } private string? FilterText { get; set; } private bool _busy; private string? Conteggio => FilteredList is null ? null : FilteredList.Count == 1 ? "1 punto vendita" : $"{FilteredList.Count} punti vendita"; // I codici su cui il rilevatore ha gia' un'ispezione aperta oggi. Si legge // una volta sola: toccare una di quelle righe riapre l'ispezione esistente // invece di crearne una nuova, e la riga deve poterlo dire. private HashSet _aperteOggi = []; private void Cancel() => MudDialog.Cancel(); private bool HaIspezioneOggi(PuntoVenditaDto pv) => pv.CodMdep is not null && _aperteOggi.Contains(pv.CodMdep); protected override async Task OnInitializedAsync() { ApplyFilters(); var oggi = DateTime.Today; var ispezioni = await IspezioniService.GetAllIspezioni(UserSession.User.Username); _aperteOggi = ispezioni .Where(x => x.Data.Date == oggi && x.Stato != StatusEnum.Completata && x.CodMdep is not null) .Select(x => x.CodMdep!) .ToHashSet(StringComparer.OrdinalIgnoreCase); StateHasChanged(); } private void OnFilterInput(ChangeEventArgs e) { FilterText = e.Value?.ToString(); ApplyFilters(); } private void ClearFilter() { FilterText = null; ApplyFilters(); } private void ApplyFilters() { var source = SteupDataService.PuntiVenditaList; FilteredList = (FilterText.IsNullOrEmpty() ? source : source.FindAll(x => (x.Indirizzo != null && x.Indirizzo.ContainsIgnoreCase(FilterText!)) || (x.Descrizione != null && x.Descrizione.ContainsIgnoreCase(FilterText!)) || (x.CodMdep != null && x.CodMdep.ContainsIgnoreCase(FilterText!)) || (x.Citta != null && x.Citta.ContainsIgnoreCase(FilterText!)) || (x.Cap != null && x.Cap.ContainsIgnoreCase(FilterText!)) || (x.Provincia != null && x.Provincia.ContainsIgnoreCase(FilterText!)))) .OrderBy(x => x.CodMdep) .ToList(); StateHasChanged(); } }