using EgwCoreLib.Razor; namespace Lux.UI.Components.Compo.Contatti { public partial class DealerMan { #region Public Properties [Parameter] public List DealerList { get; set; } = null!; [Parameter] public EventCallback EC_EditReq { get; set; } [Parameter] public EventCallback EC_UpdateReq { get; set; } public List ListFiltDealer { get; set; } = null!; [Parameter] public string SearchVal { get; set; } = null!; #endregion Public Properties #region Protected Methods protected override void OnParametersSet() { if (DealerList != null && DealerList.Count > 0) { ReloadData(); UpdateTable(); } } #endregion Protected Methods #region Private Fields private int currPage = 1; private DealerModel? editRecord = null; private bool isLoading = false; private List ListRecords = new List(); private string mMessage = ""; private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; private BootstrapModal Modal = new(); private Dictionary modalOpt = new Dictionary(); private string mTitle = ""; private int numRecord = 10; private DealerModel? selRecord = null; private int totalCount = 0; #endregion Private Fields #region Private Properties [Inject] private IDealerService DService { get; set; } = null!; [Inject] private IJSRuntime JSRuntime { get; set; } = null!; #endregion Private Properties #region Private Methods private string checkSel(DealerModel curRec) { return (selRecord != null && curRec.DealerID == selRecord.DealerID) ? "table-info" : ""; } /// /// Imposta record x eliminazione /// /// private async Task DoDelete(DealerModel selRec) { mTitle = "Attenzione"; mMessage = "Sicuro di voler eliminare il record?\n "; if (string.IsNullOrEmpty(selRec.CompanyName)) { mMessage = mMessage + $"Dettagli: {selRec.FirstName} | {selRec.LastName} | {selRec.VAT}"; } else { mMessage = mMessage + $"Dettagli: {selRec.CompanyName} | {selRec.VAT}"; } mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); modalOpt.Add(true, "Si"); modalOpt.Add(false, "No"); if (!await Modal!.ShowAsync()) return; // esegue eliminazione del record... await DService.DeleteAsync(selRec); await EC_UpdateReq.InvokeAsync(true); } /// /// Edit fornitore selezionato /// /// private Task DoEdit(DealerModel curRec) { editRecord = curRec; selRecord = curRec; return EC_EditReq.InvokeAsync(editRecord); } /// /// Reset selezione /// private Task DoReset() { selRecord = null; editRecord = null; return EC_EditReq.InvokeAsync(editRecord); } private void ReloadData() { isLoading = true; ListFiltDealer = DealerList; IEnumerable query = DealerList; if (!string.IsNullOrEmpty(SearchVal) && SearchVal.Length >= 3) { query = query.Where(x => x.FirstName.Contains(SearchVal, StringComparison.OrdinalIgnoreCase) || x.LastName.Contains(SearchVal, StringComparison.OrdinalIgnoreCase) || x.CompanyName.Contains(SearchVal, StringComparison.OrdinalIgnoreCase)); } // effettuo search ListFiltDealer = query.ToList(); totalCount = ListFiltDealer.Count; } private void SaveNumRec(int newNum) { numRecord = newNum; currPage = 1; UpdateTable(); } private void SavePage(int newNum) { currPage = newNum; UpdateTable(); } /// /// Filtro e paginazione /// private void UpdateTable() { // fix paginazione ListRecords = ListFiltDealer .Skip(numRecord * (currPage - 1)) .Take(numRecord) .ToList(); isLoading = false; } #endregion Private Methods } }