From 39d1eddb20a6d0aaf8d06c4a86d75a4aeedeea1e Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Sat, 22 May 2021 16:34:22 +0200 Subject: [PATCH] calcolo al volo dati x charting --- MP.Stats/Components/ChartScarti.razor.cs | 29 +++++++++++++----------- MP.Stats/Data/MpStatsService.cs | 29 ------------------------ MP.Stats/Pages/Scarti.razor | 2 +- 3 files changed, 17 insertions(+), 43 deletions(-) diff --git a/MP.Stats/Components/ChartScarti.razor.cs b/MP.Stats/Components/ChartScarti.razor.cs index 1665130d..be8489dd 100644 --- a/MP.Stats/Components/ChartScarti.razor.cs +++ b/MP.Stats/Components/ChartScarti.razor.cs @@ -17,18 +17,20 @@ namespace MP.Stats.Components protected SelectData _currFilter { get; set; } = new SelectData(); - + protected List _listScarti { get; set; } = new List(); [Parameter] - public SelectData DataFilter + public List ListScarti { - get => _currFilter; + get => _listScarti; set { - _currFilter = value; + // salvo valori + _listScarti = value; + // ricalcolo charting data + recalcData(); var dataReload = Task.Run(async () => { - await reloadData(); await HandleRedraw(); }); } @@ -121,15 +123,16 @@ namespace MP.Stats.Components List borderColors = new List { ChartColor.FromRgba(255, 99, 132, 1f), ChartColor.FromRgba(54, 162, 235, 1f), ChartColor.FromRgba(255, 206, 86, 1f), ChartColor.FromRgba(75, 192, 192, 1f), ChartColor.FromRgba(153, 102, 255, 1f), ChartColor.FromRgba(255, 159, 64, 1f) }; - protected override async Task OnInitializedAsync() + private void recalcData() { - await reloadData(); + if (ListScarti != null) + { + CurrData = ListScarti + .GroupBy(x => x.Causale) + .Select(y => new ChartKV() { label = y.First().Descrizione, value = y.Sum(c => c.Qta) }) + .OrderByDescending(x => x.value) + .ToList(); + } } - - private async Task reloadData() - { - CurrData = await StatService.StatScartiGetPareto(DataFilter, MessageService.SearchVal); - } - } } diff --git a/MP.Stats/Data/MpStatsService.cs b/MP.Stats/Data/MpStatsService.cs index b82acd46..986300d0 100644 --- a/MP.Stats/Data/MpStatsService.cs +++ b/MP.Stats/Data/MpStatsService.cs @@ -261,35 +261,6 @@ namespace MP.Stats.Data return await Task.FromResult(dbResult); } - public async Task> StatScartiGetPareto(SelectData CurrFilter, string searchVal = "") - { - List statResult = new List(); - string cacheKey = getCacheKey("MP:STATS:SCARTI:PARETO", CurrFilter); - string rawData; - var redisDataList = await distributedCache.GetAsync(cacheKey); - if (redisDataList != null) - { - rawData = Encoding.UTF8.GetString(redisDataList); - statResult = JsonConvert.DeserializeObject>(rawData); - } - else - { - // recupero dal DB (eventualmente con cache) - var dbResult = await StatScartiGetAll(CurrFilter, searchVal); - // faccio conteggio... - statResult = dbResult - .GroupBy(x => x.Causale) - .Select(y => new ChartKV() { label = y.First().Descrizione, value = y.Sum(c => c.Qta) }) - .OrderByDescending(x => x.value) - .ToList(); - - rawData = JsonConvert.SerializeObject(statResult); - redisDataList = Encoding.UTF8.GetBytes(rawData); - await distributedCache.SetAsync(cacheKey, redisDataList, cacheOpt); - } - return await Task.FromResult(statResult); - } - public async Task> StatTurniOeeGetAllAsync(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo, string searchVal = "") { return await Task.FromResult(dbController.StatTurniOeeGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo)); diff --git a/MP.Stats/Pages/Scarti.razor b/MP.Stats/Pages/Scarti.razor index 4d1e1f5e..a4973bd9 100644 --- a/MP.Stats/Pages/Scarti.razor +++ b/MP.Stats/Pages/Scarti.razor @@ -7,7 +7,7 @@
- + @if (ListRecords == null) {