+
+
loading data
diff --git a/MP.Stats/Data/MpStatsService.cs b/MP.Stats/Data/MpStatsService.cs
index 4b2a9352..922b3656 100644
--- a/MP.Stats/Data/MpStatsService.cs
+++ b/MP.Stats/Data/MpStatsService.cs
@@ -24,8 +24,6 @@ namespace MP.Stats.Data
private readonly IDistributedCache distributedCache;
private readonly IMemoryCache memoryCache;
- private DistributedCacheEntryOptions cacheOpt;
-
///
/// Durata assoluta massima della cache
///
@@ -42,6 +40,7 @@ namespace MP.Stats.Data
#region Protected Fields
protected static string connStringBBM = "";
+
protected static string connStringFatt = "";
#endregion Protected Fields
@@ -61,7 +60,6 @@ namespace MP.Stats.Data
// conf cache
this.memoryCache = memoryCache;
this.distributedCache = distributedCache;
- cacheOpt = new DistributedCacheEntryOptions().SetAbsoluteExpiration(DateTime.Now.AddMinutes(chAbsExp)).SetSlidingExpiration(TimeSpan.FromMinutes(chSliExp));
// conf DB
string connStr = _configuration.GetConnectionString("Mp.Stats");
if (string.IsNullOrEmpty(connStr))
@@ -80,6 +78,18 @@ namespace MP.Stats.Data
#endregion Public Constructors
+ #region Private Properties
+
+ private DistributedCacheEntryOptions cacheOpt
+ {
+ get
+ {
+ return new DistributedCacheEntryOptions().SetAbsoluteExpiration(DateTime.Now.AddMinutes(chAbsExp)).SetSlidingExpiration(TimeSpan.FromMinutes(chSliExp));
+ }
+ }
+
+ #endregion Private Properties
+
#region Protected Methods
protected string getCacheKey(string TableName, SelectData CurrFilter)
@@ -92,9 +102,26 @@ namespace MP.Stats.Data
#region Public Methods
- public Task
ActionsGetAll()
+ public async Task> ActionsGetAll()
{
- return Task.FromResult(dbController.ActionsGetAll().ToArray());
+ //return Task.FromResult(dbController.ActionsGetAll());
+ List dbResult = new List();
+ string cacheKey = "MP:STATS:AZIONI_ALL";
+ string rawData;
+ var redisDataList = await distributedCache.GetAsync(cacheKey);
+ if (redisDataList != null)
+ {
+ rawData = Encoding.UTF8.GetString(redisDataList);
+ dbResult = JsonConvert.DeserializeObject>(rawData);
+ }
+ else
+ {
+ dbResult = dbController.ActionsGetAll();
+ rawData = JsonConvert.SerializeObject(dbResult);
+ redisDataList = Encoding.UTF8.GetBytes(rawData);
+ await distributedCache.SetAsync(cacheKey, redisDataList, cacheOpt);
+ }
+ return await Task.FromResult(dbResult);
}
public void rollBackEdit(object item)
@@ -107,14 +134,48 @@ namespace MP.Stats.Data
return Task.FromResult(dbController.StatArticoliGetSearch(numRecord, searchVal).ToArray());
}
- public Task StatControlliGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo, string searchVal = "")
+ public async Task> StatControlliGetAll(SelectData CurrFilter, string searchVal = "")
{
- return Task.FromResult(dbController.StatControlliGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo).ToArray());
+ //return Task.FromResult(dbController.StatControlliGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo).ToArray());
+ List dbResult = new List();
+ string cacheKey = getCacheKey("MP:STATS:CONTROLLI", CurrFilter);
+ string rawData;
+ var redisDataList = await distributedCache.GetAsync(cacheKey);
+ if (redisDataList != null)
+ {
+ rawData = Encoding.UTF8.GetString(redisDataList);
+ dbResult = JsonConvert.DeserializeObject>(rawData);
+ }
+ else
+ {
+ dbResult = dbController.StatControlliGetAll(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 StatDdbGetAll(int numRecord, string searchVal = "")
+ public async Task> StatDdbGetAll(SelectData CurrFilter, string searchVal = "")
{
- return Task.FromResult(dbController.StatDdbGetAll(numRecord, searchVal).ToArray());
+ //return Task.FromResult(dbController.StatDdbGetAll(numRecord, searchVal).ToArray());
+ List dbResult = new List();
+ 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>(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 StatMacchineGetAll()
@@ -144,10 +205,26 @@ namespace MP.Stats.Data
return await Task.FromResult(dbResult);
}
- public Task StatScartiGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo, string searchVal = "")
+ public async Task> StatScartiGetAll(SelectData CurrFilter, string searchVal = "")
{
- // filtra e restituisce SOLO i primi record...
- return Task.FromResult(dbController.StatScartiGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo).ToArray());
+ //return Task.FromResult(dbController.StatScartiGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo).ToArray());
+ List dbResult = new List();
+ string cacheKey = getCacheKey("MP:STATS:SCARTI", CurrFilter);
+ string rawData;
+ var redisDataList = await distributedCache.GetAsync(cacheKey);
+ if (redisDataList != null)
+ {
+ rawData = Encoding.UTF8.GetString(redisDataList);
+ dbResult = JsonConvert.DeserializeObject>(rawData);
+ }
+ else
+ {
+ dbResult = dbController.StatScartiGetAll(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 async Task> StatTurniOeeGetAllAsync(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo, string searchVal = "")
@@ -186,9 +263,26 @@ namespace MP.Stats.Data
return Task.FromResult(dbController.StatTurniParetoOdlGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo).ToArray());
}
- public Task StatUserLogGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo, string searchVal = "")
+ public async Task> StatUserLogGetAll(SelectData CurrFilter, string searchVal = "")
{
- return Task.FromResult(dbController.StatUserLogGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo).ToArray());
+ //return Task.FromResult(dbController.StatUserLogGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo).ToArray());
+ List dbResult = new List();
+ string cacheKey = getCacheKey("MP:STATS:USRACTLOG", CurrFilter);
+ string rawData;
+ var redisDataList = await distributedCache.GetAsync(cacheKey);
+ if (redisDataList != null)
+ {
+ rawData = Encoding.UTF8.GetString(redisDataList);
+ dbResult = JsonConvert.DeserializeObject>(rawData);
+ }
+ else
+ {
+ dbResult = dbController.StatUserLogGetAll(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);
}
#endregion Public Methods
diff --git a/MP.Stats/Pages/Controlli.razor b/MP.Stats/Pages/Controlli.razor
index abaf527d..494ccd16 100644
--- a/MP.Stats/Pages/Controlli.razor
+++ b/MP.Stats/Pages/Controlli.razor
@@ -1,31 +1,28 @@
@page "/controlli"
@using MP.Stats.Components
-@using MP.Stats.Data