using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; using MP.Data.DbModels; using MP.Data.Services; using MP.Stats.Data; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; namespace MP.Stats.Pages { public partial class TrendAnalysis { #region Public Methods public void Dispose() { MServ.EA_SearchUpdated -= OnSeachUpdated; } public async void OnSeachUpdated() { await InvokeAsync(() => { Task task = UpdateData(); StateHasChanged(); }); } #endregion Public Methods #region Protected Fields protected string CodFluxSel = "*"; protected string fileName = "TrendAnalysis.csv"; #endregion Protected Fields #region Protected Properties protected List CodFluxList { get; set; } = new List() { "Energy", "Parameter" }; [Inject] protected IJSRuntime JSRuntime { get; set; } [Inject] protected Data.MessageService MServ { get; set; } [Inject] protected NavigationManager NavManager { get; set; } [Inject] protected MpStatsService StatService { get; set; } protected int totalCount { get { int answ = 0; if (SearchRecords != null) { answ = SearchRecords.Count; } return answ; } } [Inject] protected TranslateSrv TradService { get; set; } #endregion Protected Properties #region Protected Methods protected async Task DoFilter(SelectData newFilter) { SearchRecords = null; currFilter = newFilter; await ReloadData(); } protected override async Task OnInitializedAsync() { MServ.ShowSearch = false; MServ.PageName = "Trend Analisys"; MServ.PageIcon = "fa-solid fa-arrow-trend-up"; CalcFilt(); MServ.EA_SearchUpdated += OnSeachUpdated; await LoadConfData(); await ReloadData(); } protected async Task ResetFilter(SelectData newFilter) { SearchRecords = null; CalcFilt(); await ReloadData(); } /// /// Salvataggio codflux /// /// /// protected async Task SetCodFlux(string newCodFlux) { CodFluxSel = newCodFlux; await ReloadData(); } /// /// Traduzione lemma richeisto (lingua default="IT") /// /// /// protected string Traduci(string Lemma) { return TradService.Traduci(Lemma); } protected async Task UpdateData() { await ReloadData(); } #endregion Protected Methods #region Private Fields private List ConfigList; private List SearchRecords; #endregion Private Fields #region Private Properties private SelectData currFilter { get { return MServ.ODL_Filter; } set { MServ.ODL_Filter = value; } } private bool isLoading { get; set; } = false; #endregion Private Properties #region Private Methods /// /// Calcola il filtro alla data necessaria x arrivare al confronto x mese... /// private void CalcFilt() { DateTime oggi = DateTime.Now.Date; DateTime inizio = new DateTime(oggi.Year, oggi.Month, 1).AddMonths(-1); int numPrev = (int)oggi.Subtract(inizio).TotalDays; currFilter = SelectData.Init(5, numPrev); } private async Task LoadConfData() { ConfigList = await StatService.ConfigGetAll(); CodFluxList = await StatService.FluxTypeList(); } private async Task ReloadData() { SearchRecords = await StatService.FluxLogRawData(currFilter, CodFluxSel, MServ.SearchVal); } #endregion Private Methods } }