using LiMan.DB; using LiMan.DB.DTO; using LiMan.UI.Data; using Microsoft.AspNetCore.Components; using System; using System.Threading.Tasks; namespace LiMan.UI.Components { public partial class InstallInfoStats { #region Protected Properties [Inject] protected LiManDataService LMDService { get; set; } = null!; #endregion Protected Properties #region Protected Methods protected override async Task OnInitializedAsync() { LMDService.EnrollMessPipe.EA_NewMessage += async (sender, e) => await EnrollMessPipe_EA_NewMessage(sender, e); await ReloadData(); } public void Dispose() { LMDService.EnrollMessPipe.EA_NewMessage -= async (sender, e) => await EnrollMessPipe_EA_NewMessage(sender, e); } /// /// Evento refresh legato a ricezione evento da MessagePipe /// /// /// private async Task EnrollMessPipe_EA_NewMessage(object sender, EventArgs e) { PubSubEventArgs currArgs = (PubSubEventArgs)e; // qualsiasi messaggio fa scattare reload data if (!string.IsNullOrEmpty(currArgs.newMessage)) { isLoading = true; await InvokeAsync(StateHasChanged); await ReloadData(); isLoading = false; await InvokeAsync(StateHasChanged); } } #endregion Protected Methods #region Private Properties private DateTime DtFine { get; set; } = DateTime.Today.AddHours(DateTime.Now.Hour); private DateTime DtInizio { get; set; } = DateTime.Today.AddMonths(-1); private InstallStatusDTO InfoStats { get; set; } = new InstallStatusDTO(); private bool isLoading { get; set; } = false; #endregion Private Properties #region Private Methods private async Task ReloadData() { isLoading = true; InfoStats = await LMDService.InstallStatusGetInfo(DtInizio, DtFine); isLoading = false; } #endregion Private Methods } }