Continuo update weekstats
This commit is contained in:
@@ -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; }
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user