Continuo update weekstats

This commit is contained in:
Samuele Locatelli
2021-12-09 12:36:43 +01:00
parent f65ee46868
commit e5515dde29
3 changed files with 42 additions and 14 deletions
+11 -4
View File
@@ -2,15 +2,22 @@
<div class="card text-center">
<div class="card-header py-1">W.@currData?.WeekNumber</div>
<div class="card-body">
statistiche
<div class="d-flex justify-content-between">
<div class="py-0 px-2">
L: <span class="font-weight-bold text-primary">@currData?.SumOreLav.ToString("N2")</span>
</div>
<div class="py-0 px-2">
C: <span class="font-weight-bold text-success">@currData?.SumOreComm.ToString("N2")</span>
</div>
</div>
</div>
<div class="card-footer small p-1">
<div class="d-flex justify-content-between">
<div class="py-0 px-2">
<sub>@currData?.inizio.ToString("ddd dd.MM")</sub>
<sub>@currData?.Inizio.ToString("ddd dd.MM")</sub>
</div>
<div class="py-0 px-2">
<sub>@currData?.fine.ToString("ddd dd.MM")</sub>
<sub>@currData?.Fine.ToString("ddd dd.MM")</sub>
</div>
</div>
</div>
@@ -19,5 +26,5 @@
@code {
[Parameter]
public CORE.Data.WeekData? currData { get; set; }
public CORE.Data.DTO.WeekStatDTO? currData { get; set; }
}
+29 -8
View File
@@ -41,6 +41,7 @@ namespace GPW.CORE.UI.Data
#region Protected Fields
protected const string rKeyDipendenti = "Cache:Dipendenti";
protected const string rKeyWeekStats = "Cache:WeekStats";
protected const string rKeyQrRemnants = "Cache:QrRemnants";
protected const string rKeyRemnants = "Cache:Remnants";
protected static string connStringBBM = "";
@@ -104,19 +105,39 @@ namespace GPW.CORE.UI.Data
}
/// <summary>
/// Elenco ultime settimane
/// Statistiche ultime settimane
/// </summary>
/// <param name="idxDipendente"></param>
/// <param name="dtRif"></param>
/// <param name="numWeek"></param>
/// <returns></returns>
public async Task<List<CORE.Data.WeekData>> LastWeeks(int numWeek)
public async Task<List<CORE.Data.DTO.WeekStatDTO>> LastWeeks(int idxDipendente, DateTime dtRif,int numWeek)
{
List<CORE.Data.WeekData> dbResult = new List<CORE.Data.WeekData>();
DateTime oggi = DateTime.Today;
// aggiungo sett corrente + quelle richeiste...
for (int i = numWeek; i >=0; i--)
List<CORE.Data.DTO.WeekStatDTO>? dbResult = new List<CORE.Data.DTO.WeekStatDTO>();
string currKey = $"{rKeyWeekStats}:{idxDipendente}:{dtRif.ToString("yyyy-MM-dd")}:{numWeek}";
string rawData;
var redisDataList = await distributedCache.GetAsync(currKey);
if (redisDataList != null)
{
var currWeek = new CORE.Data.WeekData(oggi.AddDays(-i*7));
dbResult.Add(currWeek);
rawData = Encoding.UTF8.GetString(redisDataList);
dbResult = JsonConvert.DeserializeObject<List<CORE.Data.DTO.WeekStatDTO>>(rawData);
}
else
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
dbResult = dbController.WeekOverview(idxDipendente,dtRif,numWeek);
rawData = JsonConvert.SerializeObject(dbResult, JSSettings);
redisDataList = Encoding.UTF8.GetBytes(rawData);
await distributedCache.SetAsync(currKey, redisDataList, cacheOpt(false));
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
Log.Trace($"Effettuata lettura da DB + caching per LastWeeks: {ts.TotalMilliseconds} ms");
}
if (dbResult == null)
{
dbResult = new List<CORE.Data.DTO.WeekStatDTO>();
}
return await Task.FromResult(dbResult);
}
+2 -2
View File
@@ -25,7 +25,7 @@ namespace GPW.CORE.UI.Pages
private string currRecord;
private List<CORE.Data.WeekData> weekStatList;
private List<CORE.Data.DTO.WeekStatDTO> weekStatList;
#if false
private WeekPlanModel currRecord = null;
@@ -215,7 +215,7 @@ namespace GPW.CORE.UI.Pages
private async Task ReloadData()
{
isLoading = true;
weekStatList = await DataService.LastWeeks(4);
weekStatList = await DataService.LastWeeks(1,DateTime.Today, 4);
#if false
ListRecords = await DataService.WeekPlanGet();
#endif