Aggiunta apgiona diario a cache

This commit is contained in:
Samuele Locatelli
2021-05-20 19:22:05 +02:00
parent ad2a821a58
commit 728feeab66
4 changed files with 88 additions and 47 deletions
+19 -2
View File
@@ -112,9 +112,26 @@ namespace MP.Stats.Data
return Task.FromResult(dbController.StatControlliGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo).ToArray());
}
public Task<MP.Data.DatabaseModels.DdbTurni[]> StatDdbGetAll(int numRecord, string searchVal = "")
public async Task<List<MP.Data.DatabaseModels.DdbTurni>> StatDdbGetAll(SelectData CurrFilter, string searchVal = "")
{
return Task.FromResult(dbController.StatDdbGetAll(numRecord, searchVal).ToArray());
//return Task.FromResult(dbController.StatDdbGetAll(numRecord, searchVal).ToArray());
List<MP.Data.DatabaseModels.DdbTurni> dbResult = new List<MP.Data.DatabaseModels.DdbTurni>();
string cacheKey = getCacheKey("MP:STATS:DDBT", CurrFilter);
string rawData;
var redisDataList = await distributedCache.GetAsync(cacheKey);
if (redisDataList != null)
{
rawData = Encoding.UTF8.GetString(redisDataList);
dbResult = JsonConvert.DeserializeObject<List<MP.Data.DatabaseModels.DdbTurni>>(rawData);
}
else
{
dbResult = dbController.StatDdbGetAll(CurrFilter.DateStart, CurrFilter.DateEnd, CurrFilter.IdxMacchina, CurrFilter.IdxOdl, CurrFilter.KeyRichiesta, CurrFilter.CodArticolo);
rawData = JsonConvert.SerializeObject(dbResult);
redisDataList = Encoding.UTF8.GetBytes(rawData);
await distributedCache.SetAsync(cacheKey, redisDataList, cacheOpt);
}
return await Task.FromResult(dbResult);
}
public Task<MP.Data.DatabaseModels.Macchine[]> StatMacchineGetAll()
+31 -34
View File
@@ -1,7 +1,6 @@
@page "/diario"
@using MP.Stats.Components
@using MP.Stats.Data
<div class="card">
<div class="card-header table-primary">
@@ -12,40 +11,38 @@
</div>
</div>
<div class="card-body py-0">
@if (currRecord != null)
<div class="row">
<div class="col-12 table-secondary">
<SelectionFilter SelFilter="currFilter" filterChanged="DoFilter"></SelectionFilter>
</div>
</div>
@if (totalCount == 0 || ListRecords == null || ListRecords.Count() == 0)
{
@*<BasketEditor Basket="@currBasket" DataReset="ResetData" DataUpdated="UpdateData"></BasketEditor>*@
}
@if (ListRecords == null)
{
<div class="progress-bar progress-bar-striped progress-bar-animated" style="width:70%"></div>
<LoadingData></LoadingData>
}
else
{
<div class="row">
<div class="col-12 table-secondary">
<SelectionFilter SelFilter="currFilter" filterChanged="DoFilter"></SelectionFilter>
</div>
<div class="col-12">
<table class="table table-sm table-striped">
<thead>
<tr>
@*<th></th>*@
<th>Macchina</th>
<th>Data</th>
<th>ODL/Commessa</th>
<th>Articolo</th>
<th class="text-right">Stato</th>
<th class="text-right">Durata</th>
<th class="text-right">Pezzi</th>
@*<th>Operatore</th>*@
</tr>
</thead>
<tbody>
@foreach (var record in ListRecords)
<div class="row">
<div class="col-12 table-secondary">
<SelectionFilter SelFilter="currFilter" filterChanged="DoFilter"></SelectionFilter>
</div>
<div class="col-12">
<table class="table table-sm table-striped">
<thead>
<tr>
<th>Macchina</th>
<th>Data</th>
<th>ODL/Commessa</th>
<th>Articolo</th>
<th class="text-right">Stato</th>
<th class="text-right">Durata</th>
<th class="text-right">Pezzi</th>
</tr>
</thead>
<tbody>
@foreach (var record in ListRecords)
{
<tr class="@checkSelect(@record.IdxMacchina, record.CodArticolo, record.InizioStato)">
@*<td><button class="btn btn-sm btn-info" @onclick="() => Edit(record)"><span class="oi oi-pencil"></span></button>&nbsp;<button class="btn btn-sm btn-success" @onclick="() => ShowDocs(record)" title="Vai ai documenti"><span class="oi oi-document"></span></button></td>*@
<td>
<div>@record.CodMacchina</div>
<div class="small">@record.IdxMacchina</div>
@@ -61,13 +58,13 @@
<td class="text-right">@record.TotPzProd</td>
</tr>
}
</tbody>
</table>
</div>
</div>
</tbody>
</table>
</div>
</div>
}
</div>
<div class="card-footer py-1">
<DataPager PageSize="@numRecord" currPage="@currPage" numRecordChanged="ForceReload" numPageChanged="ForceReloadPage" totalCount="@SearchRecords.Count()" />
<DataPager PageSize="@numRecord" currPage="@currPage" numRecordChanged="ForceReload" numPageChanged="ForceReloadPage" totalCount="@totalCount" />
</div>
</div>
+22 -7
View File
@@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using MP.Stats.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
@@ -13,9 +14,8 @@ namespace MP.Stats.Pages
private MP.Data.DatabaseModels.DdbTurni currRecord = null;
private MP.Data.DatabaseModels.DdbTurni[] ListRecords;
private MP.Data.DatabaseModels.DdbTurni[] SearchRecords;
private List<MP.Data.DatabaseModels.DdbTurni> ListRecords;
private List<MP.Data.DatabaseModels.DdbTurni> SearchRecords;
#endregion Private Fields
@@ -41,16 +41,28 @@ namespace MP.Stats.Pages
[Inject]
protected MpStatsService StatService { get; set; }
protected int totalCount
{
get
{
int answ = 0;
if (SearchRecords != null)
{
answ = SearchRecords.Count;
}
return answ;
}
}
#endregion Protected Properties
#region Private Methods
private async Task reloadData()
{
// fare VERO filtro periodo
SearchRecords = await StatService.StatDdbGetAll(200, MessageService.SearchVal);
// SearchRecords = await StatService.StatDdbGetAll(currFilter.DateStart, currFilter.DateEnd, currFilter.IdxMacchina, currFilter.IdxOdl, currFilter.KeyRichiesta, currFilter.CodArticolo, MessageService.SearchVal);
ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToArray();
// SearchRecords = await StatService.StatDdbGetAll(200, MessageService.SearchVal);
SearchRecords = await StatService.StatDdbGetAll(currFilter, MessageService.SearchVal);
ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
}
#endregion Private Methods
@@ -59,6 +71,8 @@ namespace MP.Stats.Pages
protected async Task DoFilter(SelectData newFilter)
{
SearchRecords = null;
ListRecords = null;
currFilter = newFilter;
await reloadData();
}
@@ -78,6 +92,7 @@ namespace MP.Stats.Pages
protected override async Task OnInitializedAsync()
{
numRecord = 10;
currFilter = SelectData.Init(5, 7);
MessageService.ShowSearch = false;
MessageService.EA_SearchUpdated += OnSeachUpdated;
await reloadData();