From dd0854a6ef7a972a1444dca4d86f5e50f17cfa82 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 20 Apr 2026 08:45:22 +0200 Subject: [PATCH] Continuo migrazione async metodi DB --- MP.Data/Controllers/MpIocController.cs | 422 ++++++++++--------------- MP.Data/MP.Data.csproj | 2 +- MP.Data/Services/TabDataService.cs | 2 +- MP.IOC/Controllers/IOBController.cs | 2 +- MP.IOC/Data/MpDataService.cs | 48 +-- MP.IOC/MP.IOC.csproj | 2 +- MP.IOC/Program.cs | 10 +- MP.IOC/Resources/ChangeLog.html | 2 +- MP.IOC/Resources/VersNum.txt | 2 +- MP.IOC/Resources/manifest.xml | 2 +- 10 files changed, 189 insertions(+), 305 deletions(-) diff --git a/MP.Data/Controllers/MpIocController.cs b/MP.Data/Controllers/MpIocController.cs index c8f35411..2630330e 100644 --- a/MP.Data/Controllers/MpIocController.cs +++ b/MP.Data/Controllers/MpIocController.cs @@ -12,7 +12,7 @@ using System.Threading.Tasks; namespace MP.Data.Controllers { - public class MpIocController : IDisposable + public class MpIocController /*: IDisposable*/ { #region Public Constructors @@ -158,7 +158,6 @@ namespace MP.Data.Controllers .Database .ExecuteSqlRawAsync("EXEC stp_ConfermaProduzCompleta @idxMacchina, @MatrApp, @dataFrom, @dataTo, @pezziConf, @pezziScar, @TipoConf, @DataOraApp, @TestConferma ", IdxMacchina, MatrApp, DataFrom, DataTo, PezziConf, PezziScar, TipoConf, DtOraApp, TestConferma); - return result != 0; } @@ -333,10 +332,12 @@ namespace MP.Data.Controllers return dbResult; } +#if false public void Dispose() { _configuration = null; } +#endif /// /// Stored x recuperare ultimi dossier macchina @@ -370,58 +371,6 @@ namespace MP.Data.Controllers dbCtx.DbSetEvList.Add(newRec); return await dbCtx.SaveChangesAsync() > 0; } - /// - /// Fix ODL per macchine SLAVE - /// - /// - /// - /// - /// - public bool OdlFixMachineSlave(string idxMacchina, int numDayPrev, int doInsert) - { - using var dbCtx = new MoonProContext(_configuration); - - var idxMaccParam = new SqlParameter("@IdxMacchina", idxMacchina ?? ""); - var numDayPrevParam = new SqlParameter("@NumDayPrev", numDayPrev); - var doInsertParam = new SqlParameter("@DoInsert", doInsert); - - var result = dbCtx.Database.ExecuteSqlRaw( - "EXEC stp_ODL_fixMachineSlave @IdxMacchina, @NumDayPrev, @DoInsert", - idxMaccParam, numDayPrevParam, doInsertParam - ); - - return result != -1; - } - - /// - /// Fix ODL per macchine SLAVE Async - /// - /// - /// - /// - /// - public async Task OdlFixMachineSlaveAsync(string idxMacchina, int numDayPrev, int doInsert) - { - bool fatto = false; - using (var dbCtx = new MoonProContext(_configuration)) - { - try - { - var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina); - var NumDayPrev = new SqlParameter("@NumDayPrev", numDayPrev); - var DoInsert = new SqlParameter("@DoInsert", doInsert); - var result = await dbCtx - .Database - .ExecuteSqlRawAsync("EXEC stp_ODL_fixMachineSlave @IdxMacchina, @NumDayPrev, @DoInsert", IdxMacc, NumDayPrev, DoInsert); - fatto = result != 0; - } - catch (Exception exc) - { - Log.Error($"Eccezione durante OdlFixMachineSlaveAsync{Environment.NewLine}{exc}"); - } - } - return fatto; - } /// /// Chiamata x stored recupero FluxLog x macchina (first) @@ -432,17 +381,16 @@ namespace MP.Data.Controllers public async Task> FluxLogFirstByMaccAsync(string idxMacc, int numMax) { List dbResult = new(); - using (var dbCtx = new MoonPro_FluxContext(_configuration)) - { - var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacc); - var NumMax = new SqlParameter("@numMax", numMax); - dbResult = await dbCtx - .DbSetFluxLog - .FromSqlRaw("exec dbo.stp_FL_getFirstByMacc @IdxMacchina, @numMax", IdxMacchina, NumMax) - .AsNoTracking() - .ToListAsync(); - } + using var dbCtx = new MoonPro_FluxContext(_configuration); + var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacc); + var NumMax = new SqlParameter("@numMax", numMax); + + dbResult = await dbCtx + .DbSetFluxLog + .FromSqlRaw("exec dbo.stp_FL_getFirstByMacc @IdxMacchina, @numMax", IdxMacchina, NumMax) + .AsNoTracking() + .ToListAsync(); return dbResult; } @@ -455,19 +403,18 @@ namespace MP.Data.Controllers /// *=tutti, altrimenti solo selezionato /// numero massimo record da restituire /// - public List FluxLogGetLastFilt(DateTime DtMax, DateTime DtMin, string IdxMacchina, string CodFlux, int MaxRec) + public async Task> FluxLogGetLastFiltAsync(DateTime DtMax, DateTime DtMin, string IdxMacchina, string CodFlux, int MaxRec) { List dbResult = new List(); - using (var dbCtx = new MoonPro_FluxContext(_configuration)) - { - dbResult = dbCtx - .DbSetFluxLog - .AsNoTracking() - .Where(x => (x.dtEvento >= DtMin && x.dtEvento <= DtMax) && (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina) && (CodFlux == "*" || x.CodFlux == CodFlux)) - .OrderByDescending(x => x.dtEvento) - .Take(MaxRec) - .ToList(); - } + using var dbCtx = new MoonPro_FluxContext(_configuration); + + dbResult = await dbCtx + .DbSetFluxLog + .AsNoTracking() + .Where(x => (x.dtEvento >= DtMin && x.dtEvento <= DtMax) && (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina) && (CodFlux == "*" || x.CodFlux == CodFlux)) + .OrderByDescending(x => x.dtEvento) + .Take(MaxRec) + .ToListAsync(); return dbResult; } @@ -476,48 +423,16 @@ namespace MP.Data.Controllers /// /// /// - public bool FluxLogInsert(FluxLogModel newRec) - { - bool fatto = false; - using (var dbCtx = new MoonPro_FluxContext(_configuration)) - { - try - { - var currRec = dbCtx - .DbSetFluxLog - .Add(newRec); - dbCtx.SaveChanges(); - } - catch (Exception exc) - { - Log.Error($"Eccezione durante FluxLogInsert{Environment.NewLine}{exc}"); - } - } - return fatto; - } - - /// - /// Aggiunta record FluxLog Async - /// - /// - /// public async Task FluxLogInsertAsync(FluxLogModel newRec) { bool fatto = false; - using (var dbCtx = new MoonPro_FluxContext(_configuration)) - { - try - { - var currRec = dbCtx - .DbSetFluxLog - .Add(newRec); - await dbCtx.SaveChangesAsync(); - } - catch (Exception exc) - { - Log.Error($"Eccezione durante FluxLogInsertAsync{Environment.NewLine}{exc}"); - } - } + using var dbCtx = new MoonPro_FluxContext(_configuration); + + var currRec = dbCtx + .DbSetFluxLog + .Add(newRec); + await dbCtx.SaveChangesAsync(); + return fatto; } @@ -529,99 +444,70 @@ namespace MP.Data.Controllers public async Task FluxLogTakeSnapshotLastAsync(string idxMacc, DateTime dataInizio, DateTime dataFine) { bool fatto = false; - using (var dbCtx = new MoonPro_FluxContext(_configuration)) - { - var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacc); - var DataInizio = new SqlParameter("@DtMin", dataInizio); - var DataFine = new SqlParameter("@DtMax", dataFine); + using var dbCtx = new MoonPro_FluxContext(_configuration); - var result = await dbCtx - .Database - .ExecuteSqlRawAsync("EXEC stp_FL_TakeSnapshotLast @IdxMacchina, @DtMin, @DtMax", IdxMacchina, DataInizio, DataFine); - fatto = result > 0; - } - return fatto; - } - - public bool KeepAliveUpsert(string IdxMacc, DateTime OraServer, DateTime OraMacc) - { - bool fatto = false; - using (var dbCtx = new MoonProContext(_configuration)) - { - var currRec = dbCtx - .DbSetKeepAlive - .Where(x => x.IdxMacchina == IdxMacc) - .FirstOrDefault(); - if (currRec != null) - { - currRec.DataOraServer = OraServer; - currRec.DataOraMacchina = OraMacc; - dbCtx.Entry(currRec).State = EntityState.Modified; - } - else - { - KeepAliveModel newRec = new KeepAliveModel() - { - IdxMacchina = IdxMacc, - DataOraMacchina = OraMacc, - DataOraServer = OraServer, - DataOraStart = DateTime.Now - }; - dbCtx - .DbSetKeepAlive - .Add(newRec); - } - dbCtx.SaveChanges(); - fatto = true; - } + var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacc); + var DataInizio = new SqlParameter("@DtMin", dataInizio); + var DataFine = new SqlParameter("@DtMax", dataFine); + + var result = await dbCtx + .Database + .ExecuteSqlRawAsync("EXEC stp_FL_TakeSnapshotLast @IdxMacchina, @DtMin, @DtMax", IdxMacchina, DataInizio, DataFine); + fatto = result > 0; return fatto; } + /// + /// Upsert record keepalive + /// + /// + /// + /// + /// public async Task KeepAliveUpsertAsync(string IdxMacc, DateTime OraServer, DateTime OraMacc) { bool fatto = false; - using (var dbCtx = new MoonProContext(_configuration)) + using var dbCtx = new MoonProContext(_configuration); + + var currRec = await dbCtx + .DbSetKeepAlive + .Where(x => x.IdxMacchina == IdxMacc) + .FirstOrDefaultAsync(); + if (currRec != null) { - var currRec = await dbCtx - .DbSetKeepAlive - .Where(x => x.IdxMacchina == IdxMacc) - .FirstOrDefaultAsync(); - if (currRec != null) - { - currRec.DataOraServer = OraServer; - currRec.DataOraMacchina = OraMacc; - dbCtx.Entry(currRec).State = EntityState.Modified; - } - else - { - KeepAliveModel newRec = new KeepAliveModel() - { - IdxMacchina = IdxMacc, - DataOraMacchina = OraMacc, - DataOraServer = OraServer, - DataOraStart = DateTime.Now - }; - dbCtx - .DbSetKeepAlive - .Add(newRec); - } - fatto = await dbCtx.SaveChangesAsync() > 0; + currRec.DataOraServer = OraServer; + currRec.DataOraMacchina = OraMacc; + dbCtx.Entry(currRec).State = EntityState.Modified; } + else + { + KeepAliveModel newRec = new KeepAliveModel() + { + IdxMacchina = IdxMacc, + DataOraMacchina = OraMacc, + DataOraServer = OraServer, + DataOraStart = DateTime.Now + }; + dbCtx + .DbSetKeepAlive + .Add(newRec); + } + fatto = await dbCtx.SaveChangesAsync() > 0; + return fatto; } - public List ListLinkFilt(string tipoLink) + public async Task> ListLinkFiltAsync(string tipoLink) { List dbResult = new List(); - using (var dbCtx = new MoonProContext(_configuration)) - { - dbResult = dbCtx - .DbSetLinkMenu - .Where(x => x.TipoLink == tipoLink) - .AsNoTracking() - .OrderBy(x => x.Ordine) - .ToList(); - } + using var dbCtx = new MoonProContext(_configuration); + + dbResult = await dbCtx + .DbSetLinkMenu + .Where(x => x.TipoLink == tipoLink) + .AsNoTracking() + .OrderBy(x => x.Ordine) + .ToListAsync(); return dbResult; } @@ -631,58 +517,41 @@ namespace MP.Data.Controllers /// Filtro tabella (se "" tutto) /// Filtro colonna (se "" tutto) /// - public async Task> ListValuesFilt(string tabName, string fieldName) + public async Task> ListValuesFiltAsync(string tabName, string fieldName) { List dbResult = new List(); - using (var dbCtx = new MoonProContext(_configuration)) - { - var query = dbCtx.DbSetListValues - .AsNoTracking() - .AsQueryable(); + using var dbCtx = new MoonProContext(_configuration); - if (!string.IsNullOrEmpty(tabName)) - query = query.Where(x => x.TableName == tabName); - if (!string.IsNullOrEmpty(fieldName)) - query = query.Where(x => x.FieldName == fieldName); - - dbResult = await query.ToListAsync(); - } - return dbResult; - } - - /// - /// Intera tabella relazione master/slave in machine (gestione setup master --> slave) - /// - /// - public List Macchine2Slave() - { - List dbResult = new List(); - using (var dbCtx = new MoonProContext(_configuration)) - { - dbResult = dbCtx - .DbSetM2S + var query = dbCtx + .DbSetListValues .AsNoTracking() - .OrderBy(x => x.IdxMacchina) - .ToList(); - } + .AsQueryable(); + + if (!string.IsNullOrEmpty(tabName)) + query = query.Where(x => x.TableName == tabName); + if (!string.IsNullOrEmpty(fieldName)) + query = query.Where(x => x.FieldName == fieldName); + + dbResult = await query.ToListAsync(); + return dbResult; } /// - /// Intera tabella relazione master/slave in machine (gestione setup master --> slave) + /// Intera tabella relazione master/slave in machine (gestione setup master - slave) /// /// public async Task> Macchine2SlaveAsync() { List dbResult = new List(); - using (var dbCtx = new MoonProContext(_configuration)) - { - dbResult = await dbCtx - .DbSetM2S - .AsNoTracking() - .OrderBy(x => x.IdxMacchina) - .ToListAsync(); - } + using var dbCtx = new MoonProContext(_configuration); + + dbResult = await dbCtx + .DbSetM2S + .AsNoTracking() + .OrderBy(x => x.IdxMacchina) + .ToListAsync(); + return dbResult; } @@ -690,38 +559,39 @@ namespace MP.Data.Controllers /// Elenco Record Macchine /// /// - public List MacchineGetAll() + public async Task> MacchineGetAllAsync() { List dbResult = new List(); - using (MoonProContext dbCtx = new MoonProContext(_configuration)) - { - dbResult = dbCtx + using var dbCtx = new MoonProContext(_configuration); + + dbResult = await dbCtx .DbSetMacchine - .ToList(); - } + .ToListAsync(); + return dbResult; } public MacchineModel? MacchineGetByIdx(string IdxMacchina) { MacchineModel dbResult = null; - using (MoonProContext dbCtx = new MoonProContext(_configuration)) - { - dbResult = dbCtx - .DbSetMacchine - .FirstOrDefault(x => x.IdxMacchina == IdxMacchina); - } + using var dbCtx = new MoonProContext(_configuration); + + dbResult = dbCtx + .DbSetMacchine + .FirstOrDefault(x => x.IdxMacchina == IdxMacchina); + return dbResult; } + public async Task MacchineGetByIdxAsync(string IdxMacchina) { MacchineModel dbResult = null; - using (MoonProContext dbCtx = new MoonProContext(_configuration)) - { - dbResult = await dbCtx + using var dbCtx = new MoonProContext(_configuration); + + dbResult = await dbCtx .DbSetMacchine .FirstOrDefaultAsync(x => x.IdxMacchina == IdxMacchina); - } + return dbResult; } @@ -837,6 +707,7 @@ namespace MP.Data.Controllers return dbResult; } } + /// /// Elenco da tabella Macchine /// @@ -1072,6 +943,58 @@ namespace MP.Data.Controllers return answ; } + /// + /// Fix ODL per macchine SLAVE + /// + /// + /// + /// + /// + public async Task OdlFixMachineSlave(string idxMacchina, int numDayPrev, int doInsert) + { + using var dbCtx = new MoonProContext(_configuration); + + var idxMaccParam = new SqlParameter("@IdxMacchina", idxMacchina ?? ""); + var numDayPrevParam = new SqlParameter("@NumDayPrev", numDayPrev); + var doInsertParam = new SqlParameter("@DoInsert", doInsert); + + var result = await dbCtx + .Database + .ExecuteSqlRawAsync("EXEC stp_ODL_fixMachineSlave @IdxMacchina, @NumDayPrev, @DoInsert", idxMaccParam, numDayPrevParam, doInsertParam); + + return result != -1; + } + + /// + /// Fix ODL per macchine SLAVE Async + /// + /// + /// + /// + /// + public async Task OdlFixMachineSlaveAsync(string idxMacchina, int numDayPrev, int doInsert) + { + bool fatto = false; + using (var dbCtx = new MoonProContext(_configuration)) + { + try + { + var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina); + var NumDayPrev = new SqlParameter("@NumDayPrev", numDayPrev); + var DoInsert = new SqlParameter("@DoInsert", doInsert); + var result = await dbCtx + .Database + .ExecuteSqlRawAsync("EXEC stp_ODL_fixMachineSlave @IdxMacchina, @NumDayPrev, @DoInsert", IdxMacc, NumDayPrev, DoInsert); + fatto = result != 0; + } + catch (Exception exc) + { + Log.Error($"Eccezione durante OdlFixMachineSlaveAsync{Environment.NewLine}{exc}"); + } + } + return fatto; + } + /// /// ODL corrente macchina /// @@ -1263,6 +1186,7 @@ namespace MP.Data.Controllers } return answ; } + /// /// Effettua ricalcolo MSE x macchina indicata /// @@ -1570,6 +1494,7 @@ namespace MP.Data.Controllers } return dbResult; } + /// /// Tabella state machine eventi 2 stati data macchina e tipo evento /// @@ -1827,6 +1752,7 @@ namespace MP.Data.Controllers } return dbResult; } + /// /// Vista v_MSFD delle machine MULTI filtrato x macchina (da stored) /// diff --git a/MP.Data/MP.Data.csproj b/MP.Data/MP.Data.csproj index fdc9003c..3c9a90c7 100644 --- a/MP.Data/MP.Data.csproj +++ b/MP.Data/MP.Data.csproj @@ -31,7 +31,7 @@ - + diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs index b2f23468..727f0bdd 100644 --- a/MP.Data/Services/TabDataService.cs +++ b/MP.Data/Services/TabDataService.cs @@ -3881,7 +3881,7 @@ namespace MP.Data.Services { // Free managed resources here dbTabController.Dispose(); - dbIocController.Dispose(); + //dbIocController.Dispose(); dbInveController.Dispose(); CurrConfig.Clear(); connStrParams.Clear(); diff --git a/MP.IOC/Controllers/IOBController.cs b/MP.IOC/Controllers/IOBController.cs index ba186bd0..72eadbe1 100644 --- a/MP.IOC/Controllers/IOBController.cs +++ b/MP.IOC/Controllers/IOBController.cs @@ -991,7 +991,7 @@ namespace MP.IOC.Controllers try { - bool done = await DService.SetIobConfYaml(id, content); + bool done = await DService.SetIobConfYamlAsync(id, content); answ = done ? "OK" : "KO"; } catch (Exception exc) diff --git a/MP.IOC/Data/MpDataService.cs b/MP.IOC/Data/MpDataService.cs index 73767ac6..fba6be1b 100644 --- a/MP.IOC/Data/MpDataService.cs +++ b/MP.IOC/Data/MpDataService.cs @@ -1829,7 +1829,7 @@ namespace MP.IOC.Data } else { - resultList = await IocDbController.ListValuesFilt(tabName, fieldName); + resultList = await IocDbController.ListValuesFiltAsync(tabName, fieldName); // serializzo e salvo... rawData = JsonConvert.SerializeObject(resultList); await redisDb.StringSetAsync(currKey, rawData, getRandTOut(redisLongTimeCache)); @@ -1841,6 +1841,7 @@ namespace MP.IOC.Data return resultList; } +#if false /// /// Elenco completo valori Macchine 2 Slave /// @@ -1874,7 +1875,8 @@ namespace MP.IOC.Data TimeSpan ts = stopWatch.Elapsed; Log.Debug($"Macchine2SlaveGetAll | Read from {readType}: {ts.TotalMilliseconds}ms"); return result; - } + } +#endif /// /// Elenco completo valori Macchine 2 Slave @@ -3050,7 +3052,7 @@ namespace MP.IOC.Data if (!disabKA) { // scrivo keep alive!!! (se necessario, altrimenti è in cache...) - ScriviKeepAlive(idxMacchina, DateTime.Now); + await ScriviKeepAliveAsync(idxMacchina, DateTime.Now); } string answ = ""; @@ -3255,7 +3257,7 @@ namespace MP.IOC.Data public async Task ProcessUserLogAsync(string idxMacchina, string flux, string valore, string dtEve, string dtCurr, int contatore, int matrOpr, string label, int valNum) { // scrivo keep alive!!! (se necessario, altrimenti è in cache...) - ScriviKeepAlive(idxMacchina, DateTime.Now); + await ScriviKeepAliveAsync(idxMacchina, DateTime.Now); // 2017.09.14 trimmo eventualmente lo zero finale dalle date SE supera i millisecondi... dtEve = dtEve.Length > 17 ? dtEve.Substring(0, 17) : dtEve; dtCurr = dtCurr.Length > 17 ? dtCurr.Substring(0, 17) : dtCurr; @@ -4078,42 +4080,6 @@ namespace MP.IOC.Data return await IocDbController.SignalLogInsertAsync(newRec); } - /// - /// scrive un evento di keepalive sulla tabella - /// - /// - /// - /// - public void ScriviKeepAlive(string IdxMacchina, DateTime oraMacchina) - { - string nomeVar = string.Format("KeepAlive:{0}", IdxMacchina); - // cerco se ho keep alive in redis, - bool keyPresent = false; - DateTime adesso = DateTime.Now; - var currKey = Utils.RedKeyHash(nomeVar); - try - { - keyPresent = RedisKeyPresent(currKey); - } - catch - { } - // se NON presente salvo in REDIS con TTL 10 sec e sul DB... - if (!keyPresent) - { - redisDb.StringSet(currKey, adesso.ToString("s"), TimeSpan.FromSeconds(10)); - try - { - Log.Trace($"Scrittura keep alive! IdxMacchina: {IdxMacchina}"); - // effettuo scrittura sul DB - IocDbController.KeepAliveUpsert(IdxMacchina, DateTime.Now, oraMacchina); - } - catch (Exception exc) - { - Log.Error($"Errore in scrittura keep alive!{Environment.NewLine}oraMacchina: {oraMacchina} - IdxMacchina: {IdxMacchina}{Environment.NewLine}{exc}"); - } - } - } - /// /// scrive un evento di keepalive sulla tabella /// @@ -4143,7 +4109,7 @@ namespace MP.IOC.Data /// /// /// - public async Task SetIobConfYaml(string idxMacchina, string iobConfFull) + public async Task SetIobConfYamlAsync(string idxMacchina, string iobConfFull) { bool answ = false; // se ho un area memoria valida... diff --git a/MP.IOC/MP.IOC.csproj b/MP.IOC/MP.IOC.csproj index 3748945d..a5e21b92 100644 --- a/MP.IOC/MP.IOC.csproj +++ b/MP.IOC/MP.IOC.csproj @@ -4,7 +4,7 @@ net8.0 enable enable - 6.16.2604.1816 + 6.16.2604.2008 diff --git a/MP.IOC/Program.cs b/MP.IOC/Program.cs index 8c01ac38..45e518de 100644 --- a/MP.IOC/Program.cs +++ b/MP.IOC/Program.cs @@ -138,7 +138,7 @@ using (var scope = app.Services.CreateScope()) catch (Exception ex) { var migrateLogger = services.GetRequiredService>(); - migrateLogger.LogError(ex, "Si è verificato un errore durante l'aggiornamento del database."); + migrateLogger.LogError(ex, "Si � verificato un errore durante l'aggiornamento del database."); } } @@ -157,14 +157,6 @@ app.Use(async (ctx, next) => }); - -// Map route to RouteManager -//app.Map("/MP/IOC/api/RIOB/{**catchAll}", async (HttpContext ctx) => -//{ -// var routeManager = ctx.RequestServices.GetRequiredService(); -// await routeManager.HandleAsync(ctx); -//}); - // parametrizzare?!?!? app.MapWhen(ctx => ctx.Request.Path.StartsWithSegments(fullPath, StringComparison.OrdinalIgnoreCase) || diff --git a/MP.IOC/Resources/ChangeLog.html b/MP.IOC/Resources/ChangeLog.html index 441d2916..00cc29dd 100644 --- a/MP.IOC/Resources/ChangeLog.html +++ b/MP.IOC/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MP-IOC -

Versione: 6.16.2604.1816

+

Versione: 6.16.2604.2008


Note di rilascio:
  • diff --git a/MP.IOC/Resources/VersNum.txt b/MP.IOC/Resources/VersNum.txt index 11a36277..9c6c9fcd 100644 --- a/MP.IOC/Resources/VersNum.txt +++ b/MP.IOC/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2604.1816 +6.16.2604.2008 diff --git a/MP.IOC/Resources/manifest.xml b/MP.IOC/Resources/manifest.xml index 8baa044e..2d3dc349 100644 --- a/MP.IOC/Resources/manifest.xml +++ b/MP.IOC/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2604.1816 + 6.16.2604.2008 https://nexus.steamware.net/repository/SWS/MP-IOC/stable/LAST/MP.IOC.zip https://nexus.steamware.net/repository/SWS/MP-IOC/stable/LAST/ChangeLog.html false