using Microsoft.AspNetCore.Components; using MP.Core.DTO; using MP.Data.DbModels; using MP.SPEC.Data; namespace MP.SPEC.Pages { public partial class Operatori { #region Protected Properties [Inject] protected MpDataService MDService { get; set; } = null!; #endregion Protected Properties #region Protected Methods protected override async Task OnInitializedAsync() { await ReloadDataAsync(); } #endregion Protected Methods #region Private Fields private bool isLoading = false; private List ListGruppi = new(); private List ListOperatori = new(); private string SearchVal = ""; private AnagOperatoriModel? SelRec = null; #endregion Private Fields #region Private Properties private string btnSearchCss => string.IsNullOrWhiteSpace(SearchVal) ? "btn-secondary" : "btn-primary"; private string cssMain => SelRec == null ? "col-12" : "col-6"; private bool ShowDetail => SelRec != null; #endregion Private Properties #region Private Methods private async Task DoReset() { SearchVal = ""; await ReloadDataAsync(); } private async Task DoSelect(AnagOperatoriModel? newRec) { SelRec = newRec; if (SelRec == null) { ListGruppi.Clear(); } else { // recupero gruppi operatore ListGruppi = await MDService.GruppiRepartoDtoByOperAsync(SelRec.MatrOpr); } } private async Task ReloadDataAsync() { isLoading = true; var rawList = await MDService.OperatoriGetFiltAsync("*"); if (string.IsNullOrEmpty(SearchVal)) { ListOperatori = rawList; } else { ListOperatori = rawList .Where(x => x.Cognome.Contains(SearchVal, StringComparison.InvariantCultureIgnoreCase) || x.Nome.Contains(SearchVal, StringComparison.InvariantCultureIgnoreCase)).ToList(); } isLoading = false; } #endregion Private Methods } }