diff --git a/Core/Const.cs b/Core/Const.cs
index db6b319..411b43c 100644
--- a/Core/Const.cs
+++ b/Core/Const.cs
@@ -14,5 +14,6 @@ namespace Core
public const string rKeyConfig = $"{redisBaseAddr}:Cache";
public const string ENRL_MSG_PIPE = $"{redisBaseAddr}:MPipe:Enroll";
public const string TASK_MSG_PIPE = $"{redisBaseAddr}:MPipe:Tasks";
+ public const string UPDT_MSG_PIPE = $"{redisBaseAddr}:MPipe:Update";
}
}
diff --git a/LiMan.Api/Controllers/AppTaskController.cs b/LiMan.Api/Controllers/AppTaskController.cs
index 0003c1e..17e210c 100644
--- a/LiMan.Api/Controllers/AppTaskController.cs
+++ b/LiMan.Api/Controllers/AppTaskController.cs
@@ -44,18 +44,21 @@ namespace LiMan.APi.Controllers
/// Elimina tutte le registrazioni req/run/done x device
///
/// dev richiedente
- /// Obj AuthDataDTO con chiavi (master o app)
+ /// Obj AuthDataDTO con chiavi (master o app)
[HttpDelete("cleanup/{dev}")]
- public async Task> TaskClearAll(string dev, [FromBody] TaskResultDTO CurrRequest)
+ public async Task> TaskClearAll(string dev, [FromBody] TaskResultDTO CurrReq)
{
Dictionary result = new Dictionary();
// verifica validità richiesta...
- if (CurrRequest.IsValid)
+ if (CurrReq.IsValid)
{
// FixMe ToDo !!! effettuare verifica valori chiavi/imp/device...
// elimina tutte le richieste x la macchina...
- var rawData = dataService.TaskListReset(CurrRequest.CodImp);
+ var rawData = dataService.TaskListReset(CurrReq.CodImp);
+
+ // registro updater...
+ dataService.UpdaterRecordAction(CurrReq.CodImp);
if (rawData != null)
{
@@ -64,7 +67,7 @@ namespace LiMan.APi.Controllers
// salva in redis e toglie dai task da eseguire la richiesta relativa...
// registro infine chiamata
- await dataService.recordCall(dev, CurrRequest.CodImp, $"POST:api/apptask/clear/ | {CurrRequest.MastKey} | {CurrRequest.CodImp}");
+ await dataService.recordCall(dev, CurrReq.CodImp, $"POST:api/apptask/clear/ | {CurrReq.MastKey} | {CurrReq.CodImp}");
}
return result;
}
@@ -87,6 +90,10 @@ namespace LiMan.APi.Controllers
// recupero da REDIS le richieste pending x la macchina...
result = dataService.TaskListGet(CodImp);
+
+ // registro updater...
+ dataService.UpdaterRecordAction(CodImp);
+
// registro infine chiamata
await dataService.recordCall(dev, CodImp, $"POST:api/apptask/pending/ | {dev} | {CodImp} | {AppKey}");
}
@@ -97,24 +104,27 @@ namespace LiMan.APi.Controllers
/// Registra risultato esecuzione task richiesti al device
///
/// dev richiedente
- /// Obj AuthDataDTO con chiavi (master o app)
+ /// Obj AuthDataDTO con chiavi (master o app)
[HttpPost("done/{dev}")]
- public async Task TaskSetDone(string dev, [FromBody] TaskResultDTO CurrRequest)
+ public async Task TaskSetDone(string dev, [FromBody] TaskResultDTO CurrReq)
{
string result = "NA";
// verifica validità richiesta...
- if (CurrRequest.IsValid)
+ if (CurrReq.IsValid)
{
// FixMe ToDo !!! effettuare verifica valori chiavi/imp/device...
// recupero da REDIS le richieste pending x la macchina...
- int numDone = dataService.TaskSetDone(CurrRequest.CodImp, CurrRequest.DataPayload);
+ int numDone = dataService.TaskSetDone(CurrReq.CodImp, CurrReq.DataPayload);
- result = $"saved {numDone}/{CurrRequest.DataPayload.Count}";
+ // registro updater...
+ dataService.UpdaterRecordAction(CurrReq.CodImp);
+
+ result = $"saved {numDone}/{CurrReq.DataPayload.Count}";
// salva in redis e toglie dai task da eseguire la richiesta relativa...
// registro infine chiamata
- await dataService.recordCall(CurrRequest.CodImp, CurrRequest.CodImp, $"POST:api/apptask/done/ | {CurrRequest.MastKey} | {CurrRequest.CodImp}");
+ await dataService.recordCall(CurrReq.CodImp, CurrReq.CodImp, $"POST:api/apptask/done/ | {CurrReq.MastKey} | {CurrReq.CodImp}");
}
return result;
}
@@ -123,24 +133,26 @@ namespace LiMan.APi.Controllers
/// Registra in esecuzione itask richiesti al device
///
/// dev richiedente
- /// Obj AuthDataDTO con chiavi (master o app)
+ /// Obj AuthDataDTO con chiavi (master o app)
[HttpPost("running/{dev}")]
- public async Task TaskSetRunning(string dev, [FromBody] TaskResultDTO CurrRequest)
+ public async Task TaskSetRunning(string dev, [FromBody] TaskResultDTO CurrReq)
{
string result = "NA";
// verifica validità richiesta...
- if (CurrRequest.IsValid)
+ if (CurrReq.IsValid)
{
// FixMe ToDo !!! effettuare verifica valori chiavi/imp/device...
// recupero da REDIS le richieste pending x la macchina...
- int numDone = dataService.TaskSetRunning(CurrRequest.CodImp, CurrRequest.DataPayload);
+ int numDone = dataService.TaskSetRunning(CurrReq.CodImp, CurrReq.DataPayload);
- result = $"saved {numDone}/{CurrRequest.DataPayload.Count}";
- // salva in redis e toglie dai task da eseguire la richiesta relativa...
+ // registro updater...
+ dataService.UpdaterRecordAction(CurrReq.CodImp);
+
+ result = $"saved {numDone}/{CurrReq.DataPayload.Count}";
// registro infine chiamata
- await dataService.recordCall(dev, CurrRequest.CodImp, $"POST:api/apptask/running/ | {CurrRequest.MastKey} | {CurrRequest.CodImp}");
+ await dataService.recordCall(dev, CurrReq.CodImp, $"POST:api/apptask/running/ | {CurrReq.MastKey} | {CurrReq.CodImp}");
}
return result;
}
@@ -281,6 +293,10 @@ namespace LiMan.APi.Controllers
}
}
uploadResults.Add(uploadResult);
+
+ // registro updater...
+ dataService.UpdaterRecordAction(CodImp);
+
return new CreatedResult(resourcePath, uploadResult);
}
diff --git a/LiMan.Api/Controllers/ReleaseController.cs b/LiMan.Api/Controllers/ReleaseController.cs
index 6ed74d5..418d4ef 100644
--- a/LiMan.Api/Controllers/ReleaseController.cs
+++ b/LiMan.Api/Controllers/ReleaseController.cs
@@ -87,18 +87,22 @@ namespace LiMan.APi.Controllers
///
/// Recupera elenco dati Release (rilasciate) POST api/release/getall
///
- /// Obj ReleaseReqDTO con chiavi (master o app)
+ /// Obj ReleaseReqDTO con chiavi (master o app)
[HttpPost("getall")]
- public async Task> GetReleases([FromBody] ReleaseReqDTO CurrRequest)
+ public async Task> GetReleases([FromBody] ReleaseReqDTO CurrReq)
{
List result = new List();
// verifica validità richiesta...
- if (CheckReqKeys(CurrRequest))
+ if (CheckReqKeys(CurrReq))
{
- result = await dataService.ReleaseGetByApp(CurrRequest.CodApp);
+ result = await dataService.ReleaseGetByApp(CurrReq.CodApp);
// invio notifica x app...
- dataService.TaskMessPipe.sendMessage(CurrRequest.CodImp);
- await dataService.recordCall(CurrRequest.CodApp, CurrRequest.CodApp, $"POST:api/release/getall/ | {CurrRequest.MastKey} | {CurrRequest.CodImp} | {CurrRequest.CodApp}");
+ dataService.TaskMessPipe.sendMessage(CurrReq.CodImp);
+
+ // registro updater...
+ dataService.UpdaterRecordAction(CurrReq.CodImp);
+
+ await dataService.recordCall(CurrReq.CodApp, CurrReq.CodApp, $"POST:api/release/getall/ | {CurrReq.MastKey} | {CurrReq.CodImp} | {CurrReq.CodApp}");
}
return result;
}
@@ -107,18 +111,22 @@ namespace LiMan.APi.Controllers
/// Recupera elenco dati Release CRITICHE rilasciate (se sono ultima per singola CodApp)
/// POST api/release/get-critical
///
- /// Obj ReleaseReqDTO con chiavi (master o app)
+ /// Obj ReleaseReqDTO con chiavi (master o app)
[HttpPost("getcritical")]
- public async Task> GetReleasesCritical([FromBody] ReleaseReqDTO CurrRequest)
+ public async Task> GetReleasesCritical([FromBody] ReleaseReqDTO CurrReq)
{
Dictionary result = new Dictionary();
// verifica validità richiesta...
- if (CheckReqKeys(CurrRequest))
+ if (CheckReqKeys(CurrReq))
{
result = await dataService.ReleaseGetCritical();
// invio notifica x app...
- dataService.TaskMessPipe.sendMessage(CurrRequest.CodImp);
- await dataService.recordCall(CurrRequest.CodApp, CurrRequest.CodApp, $"POST:api/release/getcritical/ | {CurrRequest.MastKey} | {CurrRequest.CodImp} | {CurrRequest.CodApp}");
+ dataService.TaskMessPipe.sendMessage(CurrReq.CodImp);
+
+ // registro updater...
+ dataService.UpdaterRecordAction(CurrReq.CodImp);
+
+ await dataService.recordCall(CurrReq.CodApp, CurrReq.CodApp, $"POST:api/release/getcritical/ | {CurrReq.MastKey} | {CurrReq.CodImp} | {CurrReq.CodApp}");
}
return result;
}
@@ -126,33 +134,37 @@ namespace LiMan.APi.Controllers
///
/// Recupera elenco dati Release (rilasciate) data versione minima POST api/release/getfilt
///
- /// Obj ReleaseReqDTO con chiavi (master o app)
+ /// Obj ReleaseReqDTO con chiavi (master o app)
[HttpPost("getfilt")]
- public async Task> GetReleasesFilt([FromBody] ReleaseReqDTO CurrRequest)
+ public async Task> GetReleasesFilt([FromBody] ReleaseReqDTO CurrReq)
{
List result = new List();
// verifica validità richiesta...
- if (CheckReqKeys(CurrRequest))
+ if (CheckReqKeys(CurrReq))
{
- result = await dataService.ReleaseGetByAppVers(CurrRequest.CodApp, CurrRequest.VersMin);
+ result = await dataService.ReleaseGetByAppVers(CurrReq.CodApp, CurrReq.VersMin);
// registro stato applicativi (da richiesta...)
InstalledReleasesModel checkRec = new InstalledReleasesModel()
{
- AppKey = CurrRequest.AppKey,
- CodApp = CurrRequest.CodApp,
- CodImp = CurrRequest.CodImp,
+ AppKey = CurrReq.AppKey,
+ CodApp = CurrReq.CodApp,
+ CodImp = CurrReq.CodImp,
DtCheck = DateTime.Now,
- MastKey = CurrRequest.MastKey,
- NumImp = CurrRequest.NumImp,
- VersNum = CurrRequest.VersMin
+ MastKey = CurrReq.MastKey,
+ NumImp = CurrReq.NumImp,
+ VersNum = CurrReq.VersMin
};
dataService.InstallRelUpsert(checkRec);
// chiamata x effettuare eventuale snapshot sulle installazioni attive
await dataService.InstallRelHistSnapshot(false);
// invio notifica x app...
- dataService.TaskMessPipe.sendMessage(CurrRequest.CodImp);
+ dataService.TaskMessPipe.sendMessage(CurrReq.CodImp);
+
+ // registro updater...
+ dataService.UpdaterRecordAction(CurrReq.CodImp);
+
// registro infine chiamata
- await dataService.recordCall(CurrRequest.CodApp, CurrRequest.CodApp, $"POST:api/release/getfilt/ | {CurrRequest.MastKey} | {CurrRequest.CodImp} | {CurrRequest.CodApp}");
+ await dataService.recordCall(CurrReq.CodApp, CurrReq.CodApp, $"POST:api/release/getfilt/ | {CurrReq.MastKey} | {CurrReq.CodImp} | {CurrReq.CodApp}");
}
return result;
}
@@ -160,18 +172,22 @@ namespace LiMan.APi.Controllers
///
/// Recupera elenco dati Release (rilasciate) data versione minima e massima POST api/release/getlimit
///
- /// Obj ReleaseReqDTO con chiavi (master o app)
+ /// Obj ReleaseReqDTO con chiavi (master o app)
[HttpPost("getlimit")]
- public async Task> GetReleasesLimit([FromBody] ReleaseReqDTO CurrRequest)
+ public async Task> GetReleasesLimit([FromBody] ReleaseReqDTO CurrReq)
{
List result = new List();
// verifica validità richiesta...
- if (CheckReqKeys(CurrRequest))
+ if (CheckReqKeys(CurrReq))
{
- result = await dataService.ReleaseGetByAppVersLimit(CurrRequest.CodApp, CurrRequest.VersMin, CurrRequest.VersMax);
+ result = await dataService.ReleaseGetByAppVersLimit(CurrReq.CodApp, CurrReq.VersMin, CurrReq.VersMax);
// invio notifica x app...
- dataService.TaskMessPipe.sendMessage(CurrRequest.CodImp);
- await dataService.recordCall(CurrRequest.CodApp, CurrRequest.CodApp, $"POST:api/release/getlimit/ | {CurrRequest.MastKey} | {CurrRequest.CodImp} | {CurrRequest.CodApp}");
+ dataService.TaskMessPipe.sendMessage(CurrReq.CodImp);
+
+ // registro updater...
+ dataService.UpdaterRecordAction(CurrReq.CodImp);
+
+ await dataService.recordCall(CurrReq.CodApp, CurrReq.CodApp, $"POST:api/release/getlimit/ | {CurrReq.MastKey} | {CurrReq.CodImp} | {CurrReq.CodApp}");
}
return result;
}
@@ -179,23 +195,23 @@ namespace LiMan.APi.Controllers
///
/// Salva una nuova release dell'applicativo (eventualmente sovrascrivendo) POST api/release/save
///
- /// Obj Richiesta
+ /// Obj Richiesta
[HttpPost("save")]
- public async Task SaveRelease([FromBody] AppRelVersion CurrRequest)
+ public async Task SaveRelease([FromBody] AppRelVersion CurrReq)
{
ReleaseDTO result = new ReleaseDTO()
{
- CodApp = CurrRequest.CodApp,
- ReleaseDate = CurrRequest.ReleaseDate,
- VersNum = CurrRequest.VersNum,
- VersText = CurrRequest.VersText,
- RelTags = CurrRequest.RelTags.ToUpper()
+ CodApp = CurrReq.CodApp,
+ ReleaseDate = CurrReq.ReleaseDate,
+ VersNum = CurrReq.VersNum,
+ VersText = CurrReq.VersText,
+ RelTags = CurrReq.RelTags.ToUpper()
};
// controllo valori
- if (CurrRequest.IsValid)
+ if (CurrReq.IsValid)
{
// verifica preliminare licenza x upload
- var licUploader = await dataService.LicenzeSearch(CurrRequest.CodInst, CurrRequest.UplAppID, CurrRequest.MasterKey, false);
+ var licUploader = await dataService.LicenzeSearch(CurrReq.CodInst, CurrReq.UplAppID, CurrReq.MasterKey, false);
if (licUploader != null && licUploader.Count > 0)
{
// in primis cerco app...
@@ -203,54 +219,55 @@ namespace LiMan.APi.Controllers
ApplicativoModel recApp = new ApplicativoModel();
if (appList != null)
{
- recApp = appList.FirstOrDefault(x => x.CodApp == CurrRequest.CodApp);
+ recApp = appList.FirstOrDefault(x => x.CodApp == CurrReq.CodApp);
}
// nel caso mancasse la aggiungo
- if (recApp == null || string.IsNullOrEmpty(recApp.CodApp) || recApp.CodApp != CurrRequest.CodApp)
+ if (recApp == null || string.IsNullOrEmpty(recApp.CodApp) || recApp.CodApp != CurrReq.CodApp)
{
recApp = new ApplicativoModel()
{
- CodApp = CurrRequest.CodApp,
+ CodApp = CurrReq.CodApp,
Descrizione = "Nuova APP da POST api/release/save",
TplConnString = "",
- Tipo = CurrRequest.Tipo
+ Tipo = CurrReq.Tipo
};
await dataService.ApplicativoUpsert(recApp);
}
//converto in una release...
ReleaseModel newRec = new ReleaseModel()
{
- CodApp = CurrRequest.CodApp,
- ReleaseDate = CurrRequest.ReleaseDate,
- RelTags = CurrRequest.RelTags.ToUpper(),
- VersNum = CurrRequest.VersNum,
- VersText = CurrRequest.VersText
+ CodApp = CurrReq.CodApp,
+ ReleaseDate = CurrReq.ReleaseDate,
+ RelTags = CurrReq.RelTags.ToUpper(),
+ VersNum = CurrReq.VersNum,
+ VersText = CurrReq.VersText
};
// registro versione eventualmente gestendo nuovo applicativo
var insRes = await dataService.ReleaseUpsert(newRec);
if (insRes)
{
- Log.Info($"Release recorded | {CurrRequest.CodApp} | {CurrRequest.VersNum} | {CurrRequest.VersText} | {CurrRequest.ReleaseDate} | {CurrRequest.RelTags}");
+ Log.Info($"Release recorded | {CurrReq.CodApp} | {CurrReq.VersNum} | {CurrReq.VersText} | {CurrReq.ReleaseDate} | {CurrReq.RelTags}");
}
}
else
{
- Log.Error($"Errore: licenza UpdateManager non TROVATA | {CurrRequest.MasterKey}");
- await dataService.recordCall(CurrRequest.CodInst, CurrRequest.CodApp, $"ERROR POST:api/release/save:{CurrRequest.CodApp} | {CurrRequest.MasterKey}");
+ Log.Error($"Errore: licenza UpdateManager non TROVATA | {CurrReq.MasterKey}");
+ await dataService.recordCall(CurrReq.CodInst, CurrReq.CodApp, $"ERROR POST:api/release/save:{CurrReq.CodApp} | {CurrReq.MasterKey}");
}
// recupero vers applicativo...
- var rawResult = await dataService.ReleaseGetByApp(CurrRequest.CodApp);
+ var rawResult = await dataService.ReleaseGetByApp(CurrReq.CodApp);
if (rawResult != null && rawResult.Count > 0)
{
- result = rawResult.Where(x => x.VersText == CurrRequest.VersText).FirstOrDefault();
+ result = rawResult.Where(x => x.VersText == CurrReq.VersText).FirstOrDefault();
}
+
// fisso nostra install
- await dataService.recordCall(CurrRequest.CodInst, CurrRequest.CodApp, $"POST:api/release/save:{CurrRequest.CodApp}");
+ await dataService.recordCall(CurrReq.CodInst, CurrReq.CodApp, $"POST:api/release/save:{CurrReq.CodApp}");
}
else
{
- Log.Error($"Errore: licenza UpdateManager non VALIDA | {CurrRequest.MasterKey}");
- await dataService.recordCall(CurrRequest.CodInst, CurrRequest.CodApp, $"ERROR POST:api/release/save:{CurrRequest.CodApp} | {CurrRequest.MasterKey}");
+ Log.Error($"Errore: licenza UpdateManager non VALIDA | {CurrReq.MasterKey}");
+ await dataService.recordCall(CurrReq.CodInst, CurrReq.CodApp, $"ERROR POST:api/release/save:{CurrReq.CodApp} | {CurrReq.MasterKey}");
}
return result;
}
@@ -258,18 +275,22 @@ namespace LiMan.APi.Controllers
///
/// Esegue tentativo salvataggio rel history
///
- /// Obj ReleaseReqDTO con chiavi (master o app)
+ /// Obj ReleaseReqDTO con chiavi (master o app)
[HttpPost("save-history")]
- public async Task> SaveRelHistory([FromBody] ReleaseReqDTO CurrRequest)
+ public async Task> SaveRelHistory([FromBody] ReleaseReqDTO CurrReq)
{
List result = new List();
// verifica validità richiesta...
- if (CheckReqKeys(CurrRequest))
+ if (CheckReqKeys(CurrReq))
{
// chiamata x effettuare eventuale snapshot sulle installazioni attive
await dataService.InstallRelHistSnapshot(true);
+
+ // registro updater...
+ dataService.UpdaterRecordAction(CurrReq.CodImp);
+
// registro infine chiamata
- await dataService.recordCall(CurrRequest.CodApp, CurrRequest.CodApp, $"POST:api/release/save-history/ | {CurrRequest.MastKey} | {CurrRequest.CodImp} | {CurrRequest.CodApp}");
+ await dataService.recordCall(CurrReq.CodApp, CurrReq.CodApp, $"POST:api/release/save-history/ | {CurrReq.MastKey} | {CurrReq.CodImp} | {CurrReq.CodApp}");
}
return result;
}
@@ -277,18 +298,22 @@ namespace LiMan.APi.Controllers
///
/// Conferma quale sia l'elenco delle app gestite POST api/release/setmanaged
///
- /// Obj ManDeclareDTO con chiavi + elenco app gestite (x eliminare altre)
+ /// Obj ManDeclareDTO con chiavi + elenco app gestite (x eliminare altre)
/// Numero di record eliminati
[HttpPost("setmanaged")]
- public async Task SetManaged([FromBody] ManDeclareDTO ManagedApp)
+ public async Task SetManaged([FromBody] ManDeclareDTO CurrReq)
{
int result = 0;
// verifica validità richiesta...
- if (CheckReqKeys(ManagedApp))
+ if (CheckReqKeys(CurrReq))
{
- result = dataService.InstallRelClean(ManagedApp.CodImp, ManagedApp.AppKey, ManagedApp.ListCodApp);
+ result = dataService.InstallRelClean(CurrReq.CodImp, CurrReq.AppKey, CurrReq.ListCodApp);
+
+ // registro updater...
+ dataService.UpdaterRecordAction(CurrReq.CodImp);
+
// invio notifica x app...
- dataService.TaskMessPipe.sendMessage(ManagedApp.CodImp);
+ dataService.TaskMessPipe.sendMessage(CurrReq.CodImp);
}
await Task.Delay(1);
return result;
diff --git a/LiMan.Api/Data/ApiDataService.cs b/LiMan.Api/Data/ApiDataService.cs
index d30253f..a73f987 100644
--- a/LiMan.Api/Data/ApiDataService.cs
+++ b/LiMan.Api/Data/ApiDataService.cs
@@ -66,6 +66,7 @@ namespace LiMan.APi.Data
// conf messagepipe: setup canali pub/sub
EnrollMessPipe = new MessagePipe(redisConn, Const.ENRL_MSG_PIPE);
TaskMessPipe = new MessagePipe(redisConn, Const.TASK_MSG_PIPE);
+ UpdActMessPipe = new MessagePipe(redisConn, Const.UPDT_MSG_PIPE);
// conf DB
string connStrDB = _configuration.GetConnectionString("LiMan.DB");
@@ -94,6 +95,11 @@ namespace LiMan.APi.Data
///
public MessagePipe TaskMessPipe { get; set; } = null!;
+ ///
+ /// Wrapper x invio/ricezione messaggi sul canale dedicato a generico update info dai vari EgwACC
+ ///
+ public MessagePipe UpdActMessPipe { get; set; } = null!;
+
#endregion Public Properties
#region Public Methods
@@ -1238,6 +1244,23 @@ namespace LiMan.APi.Data
return answ;
}
+
+
+ ///
+ /// Salva ultima dataora di comunicazione con un updater
+ ///
+ ///
+ ///
+ public int UpdaterRecordAction(string CodImp)
+ {
+ int done = 0;
+ // upsert per ogni singolo record + rimozione da running
+ redisHashKeySet((RedisKey)$"{rKeyUpdLastAct}List", CodImp, $"{DateTime.Now:yyyy-MM-dd HH:mm:ss}");
+ // invio string in messagepipe x forzare refresh...
+ UpdActMessPipe.sendMessage(CodImp);
+ return done;
+ }
+
///
/// Salva il risultato dell'esecuzione dei task effettuata
///
@@ -1448,6 +1471,10 @@ namespace LiMan.APi.Data
/// Chiave degli elenchi dei Task in esecuzione
///
protected const string rKeyTaskRun = $"{rKeyBaseComm}:TaskRun";
+ ///
+ /// Chiave degli elenchi delle ultime DataOra di comunicazione degli updater
+ ///
+ protected const string rKeyUpdLastAct = $"{rKeyBaseComm}:LastAction";
protected static JsonSerializerSettings? JSSettings;
diff --git a/LiMan.Api/Resources/ChangeLog.html b/LiMan.Api/Resources/ChangeLog.html
index 3b45763..5bdadfc 100644
--- a/LiMan.Api/Resources/ChangeLog.html
+++ b/LiMan.Api/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
License Manager
- Versione: 2.1.2501.2817
+ Versione: 2.1.2501.2907
Note di rilascio:
-
diff --git a/LiMan.Api/Resources/VersNum.txt b/LiMan.Api/Resources/VersNum.txt
index 4136350..1e22251 100644
--- a/LiMan.Api/Resources/VersNum.txt
+++ b/LiMan.Api/Resources/VersNum.txt
@@ -1 +1 @@
-2.1.2501.2817
+2.1.2501.2907
diff --git a/LiMan.Api/Resources/manifest.xml b/LiMan.Api/Resources/manifest.xml
index 9b7ced4..8cc3a19 100644
--- a/LiMan.Api/Resources/manifest.xml
+++ b/LiMan.Api/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 2.1.2501.2817
+ 2.1.2501.2907
https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/LiMan.UI.zip
https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/ChangeLog.html
false
diff --git a/LiMan.DB/Services/CommonDataServices.cs b/LiMan.DB/Services/CommonDataServices.cs
index 78a8a87..9c9b7cc 100644
--- a/LiMan.DB/Services/CommonDataServices.cs
+++ b/LiMan.DB/Services/CommonDataServices.cs
@@ -50,6 +50,7 @@ namespace LiMan.DB.Services
// conf messagepipe: setup canali pub/sub
EnrollMessPipe = new MessagePipe(redisConn, Const.ENRL_MSG_PIPE);
TaskMessPipe = new MessagePipe(redisConn, Const.TASK_MSG_PIPE);
+ UpdActMessPipe = new MessagePipe(redisConn, Const.UPDT_MSG_PIPE);
_emailSender = emailSender;
// conf DB
@@ -79,6 +80,11 @@ namespace LiMan.DB.Services
///
public MessagePipe TaskMessPipe { get; set; } = null!;
+ ///
+ /// Wrapper x invio/ricezione messaggi sul canale dedicato a generico update info dai vari EgwACC
+ ///
+ public MessagePipe UpdActMessPipe { get; set; } = null!;
+
#endregion Public Properties
#region Public Methods
diff --git a/LiMan.Transfer/Resources/ChangeLog.html b/LiMan.Transfer/Resources/ChangeLog.html
index 6ae380e..0d1d222 100644
--- a/LiMan.Transfer/Resources/ChangeLog.html
+++ b/LiMan.Transfer/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
License Manager
-
Versione: 2.1.2501.2817
+ Versione: 2.1.2501.2907
Note di rilascio:
diff --git a/LiMan.Transfer/Resources/VersNum.txt b/LiMan.Transfer/Resources/VersNum.txt
index 4136350..1e22251 100644
--- a/LiMan.Transfer/Resources/VersNum.txt
+++ b/LiMan.Transfer/Resources/VersNum.txt
@@ -1 +1 @@
-2.1.2501.2817
+2.1.2501.2907
diff --git a/LiMan.Transfer/Resources/manifest.xml b/LiMan.Transfer/Resources/manifest.xml
index c89a144..012d1cd 100644
--- a/LiMan.Transfer/Resources/manifest.xml
+++ b/LiMan.Transfer/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 2.1.2501.2817
+ 2.1.2501.2907
https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/LiMan.Transfer.zip
https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/ChangeLog.html
false
diff --git a/LiMan.UI/LiMan.UI.csproj b/LiMan.UI/LiMan.UI.csproj
index 9dd272a..523353c 100644
--- a/LiMan.UI/LiMan.UI.csproj
+++ b/LiMan.UI/LiMan.UI.csproj
@@ -2,7 +2,7 @@
net6.0
- 2.1.2501.2817
+ 2.1.2501.2907
LiMan.UI
LiMan.UI
diff --git a/LiMan.UI/Resources/ChangeLog.html b/LiMan.UI/Resources/ChangeLog.html
index 3b45763..5bdadfc 100644
--- a/LiMan.UI/Resources/ChangeLog.html
+++ b/LiMan.UI/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
License Manager
-
Versione: 2.1.2501.2817
+ Versione: 2.1.2501.2907
Note di rilascio:
-
diff --git a/LiMan.UI/Resources/VersNum.txt b/LiMan.UI/Resources/VersNum.txt
index 4136350..1e22251 100644
--- a/LiMan.UI/Resources/VersNum.txt
+++ b/LiMan.UI/Resources/VersNum.txt
@@ -1 +1 @@
-2.1.2501.2817
+2.1.2501.2907
diff --git a/LiMan.UI/Resources/manifest.xml b/LiMan.UI/Resources/manifest.xml
index 9b7ced4..8cc3a19 100644
--- a/LiMan.UI/Resources/manifest.xml
+++ b/LiMan.UI/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 2.1.2501.2817
+ 2.1.2501.2907
https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/LiMan.UI.zip
https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/ChangeLog.html
false