From 84bd09a01cd6ead0b35ee7d85a5863d5ba3e657a Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 15 Apr 2026 08:58:57 +0200 Subject: [PATCH] Prova moditica metodo setPzCount --- MP.Data/Controllers/MpIocController.cs | 23 +++++++++++++ MP.IOC/Data/MpDataService.cs | 45 ++++++++++++-------------- 2 files changed, 44 insertions(+), 24 deletions(-) diff --git a/MP.Data/Controllers/MpIocController.cs b/MP.Data/Controllers/MpIocController.cs index 0f7d8b7a..7e132630 100644 --- a/MP.Data/Controllers/MpIocController.cs +++ b/MP.Data/Controllers/MpIocController.cs @@ -1105,6 +1105,29 @@ namespace MP.Data.Controllers return dbResult; } + /// + /// Stato prod macchina (completo) Async + /// + /// + /// + /// + public async Task StatoProdMacchinaAsync(string idxMacchina, DateTime dtReq) + { + StatoProdModel dbResult = new StatoProdModel(); + using (var dbCtx = new MoonProContext(_configuration)) + { + var IdxMacchina = new SqlParameter("@pIdxMacchina", idxMacchina); + var DataOra = new SqlParameter("@DataOra ", dtReq); + dbResult = (await dbCtx + .DbSetStatoProd + .FromSqlRaw("EXEC stp_StatoProd_getByMacchina @pIdxMacchina, @DataOra ", IdxMacchina, DataOra) + .AsNoTracking() + .ToListAsync()) + .FirstOrDefault(); + } + return dbResult; + } + /// /// Intera vista v_MSFD /// diff --git a/MP.IOC/Data/MpDataService.cs b/MP.IOC/Data/MpDataService.cs index dc968b57..123f79d7 100644 --- a/MP.IOC/Data/MpDataService.cs +++ b/MP.IOC/Data/MpDataService.cs @@ -3005,9 +3005,21 @@ namespace MP.IOC.Data { string answ = "0"; // inizio processing vero e proprio INPUT... - if (!string.IsNullOrEmpty(idxMacchina)) + if (string.IsNullOrEmpty(idxMacchina)) { - if (!string.IsNullOrEmpty(counter)) + string errore = "Errore: parametro macchina vuoto"; + Log.Info(errore); + answ = errore; + } + else + { + if (string.IsNullOrEmpty(counter)) + { + string errore = "Errore: parametro counter vuoto"; + Log.Error(errore); + answ = errore; + } + else { int newCounter = -1; int.TryParse(counter, out newCounter); @@ -3019,30 +3031,18 @@ namespace MP.IOC.Data if (!rawData.HasValue) { // salvo per + tempo... - await redisDb.StringSetAsync(currKey, answ.ToString(), TimeSpan.FromSeconds(30)); + await redisDb.StringSetAsync(currKey, answ.ToString()); answ = counter; } else { - int currCount = pzCounterTc(idxMacchina); + int currCount = await pzCounterTcAsync(idxMacchina); answ = currCount.ToString(); // salvo per meno tempo... - await redisDb.StringSetAsync(currKey, answ, TimeSpan.FromSeconds(5)); + await redisDb.StringSetAsync(currKey, answ); } } } - else - { - string errore = "Errore: parametro counter vuoto"; - Log.Error(errore); - answ = errore; - } - } - else - { - string errore = "Errore: parametro macchina vuoto"; - Log.Info(errore); - answ = errore; } return answ; } @@ -3768,7 +3768,7 @@ namespace MP.IOC.Data result = IocDbController.StatoProdMacchina(idxMacchina, dtReq); // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); - redisDb.StringSet(currKey, rawData, TimeSpan.FromSeconds(1)); + redisDb.StringSet(currKey, rawData, TimeSpan.FromSeconds(5)); } if (result == null) { @@ -3778,22 +3778,19 @@ namespace MP.IOC.Data } /// - /// Stato prod macchina (completo) - ASYNC + /// Stato prod macchina (completo) /// /// /// /// private async Task StatoProdMacchinaAsync(string idxMacchina, DateTime dtReq, bool forceDb = false) { - int rndWait = rnd.Next(0, 2); - await Task.Delay(rndWait); // setup parametri costanti string source = "DB"; StatoProdModel? result = new StatoProdModel(); // cerco in _redisConn... string currKey = $"{Utils.redisStatoProd}:{idxMacchina}:{dtReq:HHmm}"; RedisValue rawData = await redisDb.StringGetAsync(currKey); - //if (!string.IsNullOrEmpty($"{rawData}")) if (rawData.HasValue && !forceDb) { result = JsonConvert.DeserializeObject($"{rawData}"); @@ -3801,10 +3798,10 @@ namespace MP.IOC.Data } else { - result = IocDbController.StatoProdMacchina(idxMacchina, dtReq); + result = await IocDbController.StatoProdMacchinaAsync(idxMacchina, dtReq); // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); - await redisDb.StringSetAsync(currKey, rawData, TimeSpan.FromSeconds(2)); + await redisDb.StringSetAsync(currKey, rawData, TimeSpan.FromSeconds(5)); } if (result == null) {