Continuo integrazione metodi tracciamento RUID

This commit is contained in:
Samuele Locatelli
2025-12-12 18:51:53 +01:00
parent 8cc25a3fe9
commit 3f2b66d002
16 changed files with 548 additions and 292 deletions
+59 -42
View File
@@ -15,13 +15,14 @@ namespace Lux.API.Controllers
{
#region Public Constructors
public WindowController(IConfiguration config, IRedisService redisService, ImageCacheService imgServ, ConfigDataService confServ)
public WindowController(IConfiguration config, IRedisService redisService, ImageCacheService imgServ, ConfigDataService confServ, CalcRuidService crService)
{
_config = config;
_redisService = redisService;
_imgService = imgServ;
_confService = confServ;
chPub = _config.GetValue<string>("ServerConf:ChannelPub") ?? "";
_calcRuidService = crService;
}
#endregion Public Constructors
@@ -60,12 +61,17 @@ namespace Lux.API.Controllers
// ...se ricevo percorso --> leggo jwd/svg cablato
if (!string.IsNullOrEmpty(currJwd))
{
// init vars
Dictionary<string, string> DictExec = new Dictionary<string, string>();
DictExec.Add("Mode", $"{(int)Egw.Window.Data.Enums.QuestionModes.BOM}");
var cMode = Egw.Window.Data.Enums.QuestionModes.BOM;
DictExec.Add("Mode", $"{(int)cMode}");
// UID cablato x ora...
DictExec.Add("UID", id);
// FixMe! todo! gestire con VERE richieste ID da servizio ReqIndexServicer!!!!
DictExec.Add("RUID", GenerateId());
// creo registrazione richiesta...
var ruid = await _calcRuidService.AddRequestAsync($"{cEnvir}", $"{cMode}", id);
// aggiungo RUID effettivo
DictExec.Add("RUID", ruid);
DictExec.Add("SerializedData", currJwd);
int nId = 1;
@@ -80,17 +86,6 @@ namespace Lux.API.Controllers
return Ok(svgContent);
}
private readonly Random _rnd = new Random();
// ---------------------------------------------------------
// ✅ ID incrementale: timestamp ms + random 4-6 chars
// ---------------------------------------------------------
private string GenerateId()
{
long ts = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
string rand = Convert.ToString(_rnd.Next(0x1000, 0xFFFF), 16).ToUpper();
return $"{ts}-{rand}";
}
/// <summary>
/// Chiamata GET: invia richiesta modo 3 (HardwareModelList) che sarà poi salvata
/// GET: api/window/hwlist
@@ -111,27 +106,7 @@ namespace Lux.API.Controllers
}
/// <summary>
/// Esegue invio effettivo richiesta elenco HW list
/// </summary>
/// <returns></returns>
private async Task sendHwReq()
{
Dictionary<string, string> DictExec = new Dictionary<string, string>();
DictExec.Add("Mode", $"{(int)Egw.Window.Data.Enums.QuestionModes.HARDWARE}");
// da rivedere?
DictExec.Add("UID", "HW.AGB");
// FixMe! todo! gestire con VERE richieste ID da servizio ReqIndexServicer!!!!
DictExec.Add("RUID", GenerateId());
DictExec.Add("SubMode", $"{(int)Egw.Window.Data.Enums.QuestionHwSubModes.LIST}");
DictExec.Add("Manufacturer", $"{(int)Egw.Window.Data.Enums.HardwareManufacturers.AGB}");
int nId = 1;
// da modificare con tipo richiesta...
QuestionDTO currArgs = new QuestionDTO(nId, EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, DictExec);
await _redisService.PublishAsync(chPub, currArgs.sProcessArgs);
}
/// <summary>
/// Chiamata GET:
/// Chiamata GET:
/// - se trova in cache risponde con elenco hw già ricevuto
/// - se non trova invia richiesta modo 3 (HardwareModelList) che sarà poi salvata
/// GET: api/window/hwlist/nome_produttore
@@ -177,7 +152,7 @@ namespace Lux.API.Controllers
// ...se ricevo percorso --> leggo jwd/svg cablato
if (!string.IsNullOrEmpty(id))
{
// bonifica nome svg da
// bonifica nome svg da
svgContent = _imgService.LoadSvg(id);
}
sw.Stop();
@@ -254,16 +229,21 @@ namespace Lux.API.Controllers
// ...se ricevo percorso --> leggo jwd/svg cablato
if (!string.IsNullOrEmpty(currJwd))
{
// init vars
Dictionary<string, string> DictExec = new Dictionary<string, string>();
DictExec.Add("Mode", $"{(int)Egw.Window.Data.Enums.QuestionModes.PREVIEW}");
var cMode = Egw.Window.Data.Enums.QuestionModes.PREVIEW;
DictExec.Add("Mode", $"{(int)cMode}");
// UID cablato x ora...
DictExec.Add("UID", id);
// FixMe! todo! gestire con VERE richieste ID da servizio ReqIndexServicer!!!!
DictExec.Add("RUID", GenerateId());
// creo registrazione richiesta...
var ruid = await _calcRuidService.AddRequestAsync($"{cEnvir}", $"{cMode}", id);
// aggiungo RUID effettivo
DictExec.Add("RUID", ruid);
DictExec.Add("SerializedData", currJwd);
int nId = 1;
// da modificare con tipo richiesta...
QuestionDTO currArgs = new QuestionDTO(nId, EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, DictExec);
QuestionDTO currArgs = new QuestionDTO(nId, cEnvir, DictExec);
await _redisService.PublishAsync(chPub, currArgs.sProcessArgs);
svgContent = "DONE";
@@ -278,10 +258,14 @@ namespace Lux.API.Controllers
#region Private Fields
private static Logger Log = LogManager.GetCurrentClassLogger();
private readonly CalcRuidService _calcRuidService;
private readonly IRedisService _redisService;
private readonly string chPub = "";
private IConfiguration _config;
private EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS cEnvir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW;
/// <summary>
/// Demorichiesta jwd x fare test richiesta calcolo
/// </summary>
@@ -291,9 +275,42 @@ namespace Lux.API.Controllers
#region Private Properties
private ImageCacheService _imgService { get; set; }
private ConfigDataService _confService { get; set; }
private ImageCacheService _imgService { get; set; }
#endregion Private Properties
#region Private Methods
/// <summary>
/// Esegue invio effettivo richiesta elenco HW list
/// </summary>
/// <returns></returns>
private async Task sendHwReq()
{
// init vars
Dictionary<string, string> DictExec = new Dictionary<string, string>();
var cMode = Egw.Window.Data.Enums.QuestionModes.HARDWARE;
var cSubMode = Egw.Window.Data.Enums.QuestionHwSubModes.LIST;
var cManufact = Egw.Window.Data.Enums.HardwareManufacturers.AGB;
// compongo richiesta
DictExec.Add("Mode", $"{(int)cMode}");
// aggiungo dati ID
string uid = "HW.AGB";
DictExec.Add("UID", uid);
// creo registrazione richiesta...
var ruid = await _calcRuidService.AddRequestAsync($"{cEnvir}", $"{cMode}-{cSubMode}", uid);
// aggiungo RUID effettivo
DictExec.Add("RUID", ruid);
DictExec.Add("SubMode", $"{(int)cSubMode}");
DictExec.Add("Manufacturer", $"{(int)cManufact}");
int nId = 1;
// da modificare con tipo richiesta...
QuestionDTO currArgs = new QuestionDTO(nId, cEnvir, DictExec);
await _redisService.PublishAsync(chPub, currArgs.sProcessArgs);
}
#endregion Private Methods
}
}