diff --git a/MP.Stats/Data/MpStatsService.cs b/MP.Stats/Data/MpStatsService.cs index 3f512c54..e67fcd14 100644 --- a/MP.Stats/Data/MpStatsService.cs +++ b/MP.Stats/Data/MpStatsService.cs @@ -91,6 +91,14 @@ namespace MP.Stats.Data } } + private DistributedCacheEntryOptions cacheOptLong + { + get + { + return new DistributedCacheEntryOptions().SetAbsoluteExpiration(DateTime.Now.AddMinutes(chAbsExp * 10)).SetSlidingExpiration(TimeSpan.FromMinutes(chSliExp)); + } + } + #endregion Private Properties #region Protected Methods @@ -103,7 +111,7 @@ namespace MP.Stats.Data protected string getCacheKeyPaged(string TableName, SelectData CurrFilter) { - string answ = $"{TableName}:M_{CurrFilter.IdxMacchina}:A_{CurrFilter.PageNum}:K_{CurrFilter.KeyRichiesta}:O_{CurrFilter.IdxOdl}:D_{CurrFilter.DateStart:yyMMddHHmm}_{CurrFilter.DateEnd:yyMMddHHmm}:R_{CurrFilter.FirstRecord}_{CurrFilter.FirstRecord + CurrFilter.NumRecord}"; + string answ = $"{TableName}:M_{CurrFilter.IdxMacchina}:A_{CurrFilter.CodArticolo}:K_{CurrFilter.KeyRichiesta}:O_{CurrFilter.IdxOdl}:D_{CurrFilter.DateStart:yyMMddHHmm}_{CurrFilter.DateEnd:yyMMddHHmm}:R_{CurrFilter.FirstRecord}_{CurrFilter.FirstRecord + CurrFilter.NumRecord}"; return answ; } @@ -259,7 +267,7 @@ namespace MP.Stats.Data numRec = dbController.StatDdbGetCount(CurrFilter.DateStart, CurrFilter.DateEnd, CurrFilter.IdxMacchina, CurrFilter.IdxOdl, CurrFilter.KeyRichiesta, CurrFilter.CodArticolo); rawData = $"{numRec}"; redisDataList = Encoding.UTF8.GetBytes(rawData); - await distributedCache.SetAsync(cacheKey, redisDataList, cacheOpt); + await distributedCache.SetAsync(cacheKey, redisDataList, cacheOptLong); stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; Log.Info($"Effettuata lettura da DB + caching per DdbTurni: {ts.TotalMilliseconds} ms"); diff --git a/MP.Stats/Pages/Diario.razor.cs b/MP.Stats/Pages/Diario.razor.cs index 109581d3..ef260aee 100644 --- a/MP.Stats/Pages/Diario.razor.cs +++ b/MP.Stats/Pages/Diario.razor.cs @@ -34,9 +34,31 @@ namespace MP.Stats.Pages } } - private int currPage { get; set; } = 1; + private int currPage + { + get + { + return currFilter.PageNum; + } + set + { + currFilter.PageNum = value; + } + } + private bool isLoading { get; set; } = false; - private int numRecord { get; set; } = 10; + + private int numRecord + { + get + { + return currFilter.PageSize; + } + set + { + currFilter.PageSize = value; + } + } #endregion Private Properties @@ -66,7 +88,7 @@ namespace MP.Stats.Pages totalCount = await StatService.StatDdbGetCount(currFilter, MessageService.SearchVal); SearchRecords = await StatService.StatDdbGetAll(currFilter, MessageService.SearchVal); // faccio paginazione SOLO NELLA DECINA attuale... (quindi non tutte le pagine ma solo subset) - ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList(); + ListRecords = SearchRecords.Skip(numRecord * (currPage % 10 - 1)).Take(numRecord).ToList(); isLoading = false; }