using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; using MP.Data.DatabaseModels; using MP.SPEC.Data; namespace MP.SPEC.Components { public partial class ListODL : IDisposable { #region Public Properties [Parameter] public SelectOdlParams currFilter { get; set; } = null!; [Parameter] public EventCallback PagerResetReq { get; set; } [Parameter] public EventCallback updateRecordCount { get; set; } #endregion Public Properties #region Public Methods public string checkSelect(string CodArticolo) { string answ = ""; if (currRecord != null) { try { answ = (currRecord.CodArticolo == CodArticolo) ? "table-info" : ""; } catch { } } return answ; } public void Dispose() { MessageService.EA_PageUpdated -= MessageService_EA_PageUpdated; MessageService.EA_SearchUpdated -= OnSeachUpdated; } #endregion Public Methods #region Protected Properties [Inject] protected IJSRuntime JSRuntime { get; set; } = null!; [Inject] protected MpDataService MDService { get; set; } = null!; [Inject] protected MessageService MessageService { get; set; } = null!; #endregion Protected Properties #region Protected Methods protected override async Task OnInitializedAsync() { ListStati = await MDService.AnagStatiComm(); #if false MessageService.EA_PageUpdated += MessageService_EA_PageUpdated; MessageService.EA_SearchUpdated += OnSeachUpdated; #endif } protected override async Task OnParametersSetAsync() { await reloadData(); } protected async void OnSeachUpdated() { await InvokeAsync(() => { PagerResetReq.InvokeAsync(true); //currPage = 1; Task task = UpdateData(); StateHasChanged(); }); } protected async Task UpdateData() { currRecord = null; await reloadData(); } #endregion Protected Methods #region Private Fields private ODLModel? currRecord = null; private List? ListRecords; private List? ListStati; private List? SearchRecords; #endregion Private Fields #region Private Properties private int currPage { get => MessageService.currPage; set => MessageService.currPage = value; } private bool isLoading { get; set; } = false; private int numRecord { get => MessageService.numRecord; set => MessageService.numRecord = value; } private int totalCount { get; set; } = 0; #endregion Private Properties #region Private Methods private async void MessageService_EA_PageUpdated() { await reloadData(); } private async Task reloadData() { isLoading = true; SearchRecords = await MDService.ListODLFilt(currFilter.IsActive, currFilter.SearchVal, currFilter.CodStato, currFilter.DtStart, currFilter.DtEnd); totalCount = SearchRecords.Count; ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList(); await Task.Delay(1); await InvokeAsync(() => StateHasChanged()); await updateRecordCount.InvokeAsync(totalCount); isLoading = false; } private string tradFase(string codFase) { string answ = codFase; if (ListStati != null && ListStati.Count > 0) { var recSel = ListStati.FirstOrDefault(x => x.value == codFase); if (recSel != null) { answ = recSel.label; } } return answ; } #endregion Private Methods } }