using Microsoft.AspNetCore.Components; using MP.Data.DbModels; using MP.SPEC.Data; namespace MP.SPEC.Components { public partial class SelArticolo { #region Public Properties [Parameter] public string SearchVal { get; set; } = ""; [Parameter] public string SelAzienda { get; set; } = "*"; [Parameter] public string Value { get; set; } = null!; [Parameter] public EventCallback ValueChanged { get; set; } #endregion Public Properties #region Protected Properties [Inject] protected MpDataService MDService { get; set; } = null!; #endregion Protected Properties #region Protected Methods protected override async Task OnInitializedAsync() { await CaricaArticoli(); } protected override async Task OnParametersSetAsync() { if (SearchVal != _oldSearchVal || SelAzienda != _oldSelAzienda) { _oldSearchVal = SearchVal; _oldSelAzienda = SelAzienda; await CaricaArticoli(); } } #endregion Protected Methods #region Private Fields // Variabili di appoggio per tracciare il cambio dei filtri private string _oldSearchVal = string.Empty; private string _oldSelAzienda = string.Empty; private List? ListArticoli; private int maxNum = 100; #endregion Private Fields #region Private Methods private async Task CaricaArticoli() { ListArticoli = await MDService.ArticoliGetSearchAsync(maxNum, "*", SelAzienda, SearchVal); } private async Task OnSelectionChanged(ChangeEventArgs e) { Value = e.Value?.ToString() ?? ""; // Notifica il componente padre della variazione await ValueChanged.InvokeAsync(Value); } #endregion Private Methods } }