using GPW.CORE.Data.DbModels; using GPW.CORE.Data.Services; using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; using NLog; namespace GPW.CORE.ADM.Components.Compo { public partial class CalAzMan { #region Public Properties [Parameter] public DateTime DtEnd { get; set; } = new DateTime(DateTime.Today.Year + 1, 1, 1); [Parameter] public DateTime DtStart { get; set; } = new DateTime(DateTime.Today.Year, 1, 1); [Parameter] public bool isLoading { get; set; } [Parameter] public EventCallback ReportUpdate { get; set; } #endregion Public Properties #region Protected Fields protected List PageSizeListSpec = new List() { 5, 10, 15, 20 }; #endregion Protected Fields #region Protected Properties [Inject] protected MessageService AppMServ { get; set; } = null!; [Inject] protected GpwDataService GDataServ { get; set; } = null!; [Inject] protected IJSRuntime JSRuntime { get; set; } = null!; #endregion Protected Properties #region Protected Methods protected override async Task OnInitializedAsync() { ListGiust = await GDataServ.AnagGiust(); // recupero preferenze utente... await InitUserPref(); } protected override async Task OnParametersSetAsync() { currPage = 1; await ReloadData(); } protected async Task SetNumRec(int newNum) { numRecord = newNum; currPage = 1; await AppMServ.NumRowGridSet(gridKey, newNum); await InvokeAsync(ReloadData); } protected async Task SetPage(int newNum) { currPage = newNum; await InvokeAsync(ReloadData); } #endregion Protected Methods #region Private Fields private static Logger Log = LogManager.GetCurrentClassLogger(); private string gridKey = "CalChiusura"; private bool isSendingData = false; private List? ListRecords = null; private List? SearchRecords = null; private int sendDataMaxVal = 100; private int sendDataNextVal = 0; private int sendDataVal = 0; private bool showAdd = false; #endregion Private Fields #region Private Properties private int currPage { get; set; } = 1; private CalFesteFerieModel currRecord { get; set; } = new CalFesteFerieModel(); private string NomeDip { get { string answ = "per cortesia"; if (AppMServ != null && AppMServ.RigaDip != null) { answ = $"{AppMServ.RigaDip.Nome}"; } return answ; } } private int numRecord { get; set; } = 10; private int totalCount { get; set; } = 0; #endregion Private Properties #region Private Methods private void DoEdit(CalFesteFerieModel selItem) { currRecord = selItem; showAdd = true; } /// /// Registra il record /// /// private async Task DoSave() { // chiedo verifica if (!await JSRuntime.InvokeAsync("confirm", "Confermi modifica record?")) return; isSendingData = true; sendDataVal = 0; sendDataNextVal = 5; await Task.Delay(1); await Task.Delay(1); // effettuo insert... sendDataVal = 5; sendDataNextVal = 90; await Task.Delay(1); await GDataServ.CalFestFerieUpsert(currRecord); // effettuo insert... sendDataVal = 100; sendDataNextVal = 100; // aggiorno display... await Task.Delay(1); showAdd = false; await ReloadData(); await ReportUpdate.InvokeAsync(true); isSendingData = false; } /// /// Init preferenze utente /// /// private async Task InitUserPref() { try { numRecord = await AppMServ.NumRowGridGet(gridKey); } catch (Exception exc) { Log.Error($"Eccezione in InitUserPref{Environment.NewLine}{exc}"); } } private async Task ReloadData() { SearchRecords = null; await Task.Delay(1); SearchRecords = GDataServ.CalFestFeriePeriodo(DtStart, DtEnd); // conteggio! totalCount = SearchRecords.Count; // paginazione ListRecords = SearchRecords .OrderByDescending(x => x.data) .Skip(numRecord * (currPage - 1)) .Take(numRecord) .ToList(); await Task.Delay(1); await InvokeAsync(StateHasChanged); } private void ToggleEdit() { showAdd = !showAdd; } private void AddNew() { showAdd = true; currRecord = new CalFesteFerieModel() { data = DateTime.Today, codGiust = "FER", descrizione = "CHIUSURA UFFICIO" }; } private List? ListGiust = null; private async Task DoDelete(CalFesteFerieModel selItem) { // chiedo verifica if (!await JSRuntime.InvokeAsync("confirm", "Sicuro di voler eliminare il record selezionato??")) return; await Task.Delay(1); isSendingData = true; sendDataVal = 0; sendDataNextVal = 90; await Task.Delay(1); await InvokeAsync(StateHasChanged); await GDataServ.CalFestFerieDelete(selItem); sendDataVal = 100; sendDataNextVal = 100; await Task.Delay(1); await ReloadData(); await ReportUpdate.InvokeAsync(true); isSendingData = false; } #endregion Private Methods } }