diff --git a/MP.Data/Controllers/MpStatsController.cs b/MP.Data/Controllers/MpStatsController.cs index 4a5b58ff..853d1c02 100644 --- a/MP.Data/Controllers/MpStatsController.cs +++ b/MP.Data/Controllers/MpStatsController.cs @@ -7,10 +7,7 @@ using System.Configuration; using NLog; using Microsoft.Extensions.Configuration; using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Caching.Distributed; -using Microsoft.Extensions.Caching.Memory; using Microsoft.Data.SqlClient; -using Newtonsoft.Json; namespace MP.Data.Controllers { @@ -21,18 +18,14 @@ namespace MP.Data.Controllers private static IConfiguration _configuration; private static MoonPro_STATSContext dbCtx; private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); - private readonly IDistributedCache distributedCache; - private readonly IMemoryCache memoryCache; #endregion Private Fields #region Public Constructors - public MpStatsController(IConfiguration configuration, IMemoryCache memoryCache, IDistributedCache distributedCache) + public MpStatsController(IConfiguration configuration) { _configuration = configuration; - this.memoryCache = memoryCache; - this.distributedCache = distributedCache; dbCtx = new MoonPro_STATSContext(configuration); Log.Info("Avviata classe MpStatsController.MpStatsController"); } @@ -235,39 +228,21 @@ namespace MP.Data.Controllers /// /// /// - public async Task> StatTurniOeeGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo) + public List StatTurniOeeGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo) { List dbResult = new List(); - var cacheKey = "oeeData"; - string rawData; - var redisCustomerList = await distributedCache.GetAsync(cacheKey); - if (redisCustomerList != null) - { - rawData = Encoding.UTF8.GetString(redisCustomerList); - dbResult = JsonConvert.DeserializeObject>(rawData); - } - else - { - var dataFrom = new SqlParameter("@dataFrom", DataStart); - var dataTo = new SqlParameter("@dataTo", DataEnd); - var idxMacchina = new SqlParameter("@idxMacchina", IdxMacchina); - var idxODL = new SqlParameter("@IdxODL", IdxODL); - var keyRichiesta = new SqlParameter("@KeyRichiesta", KeyRichiesta); - var codArticolo = new SqlParameter("@CodArticolo", CodArticolo); + var dataFrom = new SqlParameter("@dataFrom", DataStart); + var dataTo = new SqlParameter("@dataTo", DataEnd); + var idxMacchina = new SqlParameter("@idxMacchina", IdxMacchina); + var idxODL = new SqlParameter("@IdxODL", IdxODL); + var keyRichiesta = new SqlParameter("@KeyRichiesta", KeyRichiesta); + var codArticolo = new SqlParameter("@CodArticolo", CodArticolo); - dbResult = dbCtx - .DbSetTurniOee - .FromSqlRaw("EXEC stp_UI_TurniOee_GetByFilter @dataFrom,@dataTo,@idxMacchina,@IdxODL,@KeyRichiesta,@CodArticolo", dataFrom, dataTo, idxMacchina, idxODL, keyRichiesta, codArticolo) - .ToList(); - - rawData = JsonConvert.SerializeObject(dbResult); - redisCustomerList = Encoding.UTF8.GetBytes(rawData); - var options = new DistributedCacheEntryOptions() - .SetAbsoluteExpiration(DateTime.Now.AddMinutes(10)) - .SetSlidingExpiration(TimeSpan.FromMinutes(2)); - await distributedCache.SetAsync(cacheKey, redisCustomerList, options); - } + dbResult = dbCtx + .DbSetTurniOee + .FromSqlRaw("EXEC stp_UI_TurniOee_GetByFilter @dataFrom,@dataTo,@idxMacchina,@IdxODL,@KeyRichiesta,@CodArticolo", dataFrom, dataTo, idxMacchina, idxODL, keyRichiesta, codArticolo) + .ToList(); return dbResult; } diff --git a/MP.Stats/Data/MpStatsService.cs b/MP.Stats/Data/MpStatsService.cs index 16ee0e52..ce338d85 100644 --- a/MP.Stats/Data/MpStatsService.cs +++ b/MP.Stats/Data/MpStatsService.cs @@ -54,7 +54,7 @@ namespace MP.Stats.Data } else { - dbController = new MP.Data.Controllers.MpStatsController(configuration, memoryCache, distributedCache); + dbController = new MP.Data.Controllers.MpStatsController(configuration); StringBuilder sb = new StringBuilder(); sb.AppendLine($"DbController OK"); //sb.AppendLine($"CST: {dbController.CustomersCount()} | CNT: {dbController.CountersCount()} | BSK: {dbController.BasketsCount()} | NGT: {dbController.NegotiationsCount()} | DOC: {dbController.DocsCount()} | ITM: {dbController.ItemsCount()} | RES: {dbController.ResourcesCount()}"); @@ -107,9 +107,33 @@ namespace MP.Stats.Data return Task.FromResult(dbController.StatScartiGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo).ToArray()); } - public Task> StatTurniOeeGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo, string searchVal = "") + public async Task> StatTurniOeeGetAllAsync(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo, string searchVal = "") { - return dbController.StatTurniOeeGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo); + return await Task.FromResult(dbController.StatTurniOeeGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo)); + } + + public async Task> StatTurniOeeGetAllCached(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo, string searchVal = "") + { + List dbResult = new List(); + var cacheKey = "oeeData"; + string rawData; + var redisCustomerList = await distributedCache.GetAsync(cacheKey); + if (redisCustomerList != null) + { + rawData = Encoding.UTF8.GetString(redisCustomerList); + dbResult = JsonConvert.DeserializeObject>(rawData); + } + else + { + dbResult = dbController.StatTurniOeeGetAll(DataStart, DataEnd, IdxMacchina, IdxODL, KeyRichiesta, CodArticolo); + rawData = JsonConvert.SerializeObject(dbResult); + redisCustomerList = Encoding.UTF8.GetBytes(rawData); + var options = new DistributedCacheEntryOptions() + .SetAbsoluteExpiration(DateTime.Now.AddMinutes(10)) + .SetSlidingExpiration(TimeSpan.FromMinutes(2)); + await distributedCache.SetAsync(cacheKey, redisCustomerList, options); + } + return await Task.FromResult(dbResult); } public Task StatTurniParetoGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo, string searchVal = "") diff --git a/MP.Stats/Pages/Oee.razor b/MP.Stats/Pages/Oee.razor index f31be4fb..c974017b 100644 --- a/MP.Stats/Pages/Oee.razor +++ b/MP.Stats/Pages/Oee.razor @@ -16,7 +16,7 @@ { @**@ } - @if (ListRecords == null || totalCount == 0 || ListRecords.Count() == 0) + @if (totalCount == 0 || ListRecords == null || ListRecords.Count() == 0) {
} diff --git a/MP.Stats/Pages/Oee.razor.cs b/MP.Stats/Pages/Oee.razor.cs index 37330e82..2e40d0d2 100644 --- a/MP.Stats/Pages/Oee.razor.cs +++ b/MP.Stats/Pages/Oee.razor.cs @@ -61,7 +61,8 @@ namespace MP.Stats.Pages private async Task reloadData() { - SearchRecords = await StatService.StatTurniOeeGetAll(currFilter.DateStart, currFilter.DateEnd, currFilter.IdxMacchina, currFilter.IdxOdl, currFilter.KeyRichiesta, currFilter.CodArticolo, MessageService.SearchVal); + SearchRecords = await StatService.StatTurniOeeGetAllCached(currFilter.DateStart, currFilter.DateEnd, currFilter.IdxMacchina, currFilter.IdxOdl, currFilter.KeyRichiesta, currFilter.CodArticolo, MessageService.SearchVal); + //SearchRecords = await StatService.StatTurniOeeGetAll(currFilter.DateStart, currFilter.DateEnd, currFilter.IdxMacchina, currFilter.IdxOdl, currFilter.KeyRichiesta, currFilter.CodArticolo, MessageService.SearchVal); ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToArray(); }