diff --git a/EgwCoreLib.Lux.Data/Services/BaseServ.cs b/EgwCoreLib.Lux.Data/Services/BaseServ.cs index 8abd2e9e..71dba4b3 100644 --- a/EgwCoreLib.Lux.Data/Services/BaseServ.cs +++ b/EgwCoreLib.Lux.Data/Services/BaseServ.cs @@ -43,6 +43,7 @@ namespace EgwCoreLib.Lux.Data.Services bomChannel = _config.GetValue("ServerConf:BomChannel") ?? "Egw:bom"; updateChannel = _config.GetValue("ServerConf:UpdateChannel") ?? "Egw:update"; shapeChannel = _config.GetValue("ServerConf:ShapeChannel") ?? "Egw:shape:curr"; + hwListChannel = _config.GetValue("ServerConf:HwListChannel") ?? "Egw:hw:list"; hwOptChannel = _config.GetValue("ServerConf:HwOptChannel") ?? "Egw:hw:opt"; profListChannel = _config.GetValue("ServerConf:ProfListChannel") ?? "Egw:prof:list"; // Appends ":*" to the channels to enable wildcard subscription for dynamic events @@ -62,6 +63,10 @@ namespace EgwCoreLib.Lux.Data.Services { shapeChannel += ":*"; } + if (!hwListChannel.EndsWith(":*")) + { + hwListChannel += ":*"; + } if (!hwOptChannel.EndsWith(":*")) { hwOptChannel += ":*"; @@ -82,6 +87,7 @@ namespace EgwCoreLib.Lux.Data.Services PipeBom = new MessagePipe(RedisConn, bomChannel); PipeUpdate = new MessagePipe(RedisConn, updateChannel); PipeShape = new MessagePipe(RedisConn, shapeChannel); + PipeHwList = new MessagePipe(RedisConn, hwListChannel); PipeHwOpt = new MessagePipe(RedisConn, hwOptChannel); PipeProfList = new MessagePipe(RedisConn, profListChannel); } @@ -95,6 +101,11 @@ namespace EgwCoreLib.Lux.Data.Services /// public MessagePipe PipeBom { get; set; } = null!; + /// + /// Pipe dei messaggi per ritorno HwList da Engine di calcolo verso interfaccia utente. + /// I messaggi vengono inviati sul canale Redis definito da HwListChannel. + /// + public MessagePipe PipeHwList { get; set; } = null!; /// /// Pipe dei messaggi per ritorno HwOptions calcolate da Engine di calcolo verso interfaccia utente. /// I messaggi vengono inviati sul canale Redis definito da HwOptChannel. @@ -214,6 +225,10 @@ namespace EgwCoreLib.Lux.Data.Services /// private int cacheTtlShort = 60 * 1; + /// + /// Canale ritorno Hw List + /// + private string hwListChannel = ""; /// /// Canale ritorno Hw Options /// diff --git a/EgwCoreLib.Lux.Data/Services/DataLayerServices.cs b/EgwCoreLib.Lux.Data/Services/DataLayerServices.cs index 68ec8871..b3d76073 100644 --- a/EgwCoreLib.Lux.Data/Services/DataLayerServices.cs +++ b/EgwCoreLib.Lux.Data/Services/DataLayerServices.cs @@ -853,7 +853,7 @@ namespace EgwCoreLib.Lux.Data.Services return fatto; } - + /// /// Effettua eliminazione della riga offerta /// @@ -1000,24 +1000,37 @@ namespace EgwCoreLib.Lux.Data.Services { try { - // salvo il set come oggetti deserializzati/testati? -#if false - // deserializzo la Bom... - var bomList = JsonConvert.DeserializeObject>(rawContent); - if (bomList != null) - { - // verifico 1:1 gli item ricevuti dalla BOM sul DB con eventuale insert - dbController.ItemUpsertFromBom(bomList); - // salvo la BOM nel record del DB relativo all'oggetto richiesto - dbController.OfferUpsertFromBom(uID, bomList); - } -#endif + // non effettuo salvataggio sul DB perché master del dato è esterno e lo lasceremo solo in cache REDIS + await Task.Delay(1); } catch { } } - await Task.Delay(1); } + + /// + /// Esegue salvataggio ProfileList sul DB + /// + /// UID dell'item offerta di cui si è ricevuto la BOM + /// Environment dell'item + /// HardwareModelList serializzata + /// + public async Task SaveProfileListAsync(string uID, Constants.EXECENVIRONMENTS execEnvironment, string rawContent) + { + // salvo sul DB il risultato della BOM + if (!string.IsNullOrEmpty(rawContent)) + { + try + { + // non effettuo salvataggio sul DB perché master del dato è esterno e lo lasceremo solo in cache REDIS + await Task.Delay(1); + } + catch { } + } + } + + + #endregion Public Methods #region Protected Fields diff --git a/EgwCoreLib.Lux.Data/Services/ImageCacheService.cs b/EgwCoreLib.Lux.Data/Services/ImageCacheService.cs index 4faf8724..f3aa2c83 100644 --- a/EgwCoreLib.Lux.Data/Services/ImageCacheService.cs +++ b/EgwCoreLib.Lux.Data/Services/ImageCacheService.cs @@ -25,8 +25,9 @@ namespace EgwCoreLib.Lux.Data.Services liveTag = _config.GetValue("ServerConf:ImageLiveTag") ?? "svg"; cacheTag = _config.GetValue("ServerConf:ImageFileTag") ?? "svgfile"; calcTag = _config.GetValue("ServerConf:ImageCalcTag") ?? "svg-preview"; - bomChannel = _config.GetValue("ServerConf:BomChannel") ?? "Egw-bom"; - updateChannel = _config.GetValue("ServerConf:UpdateChannel") ?? "Egw-update"; + bomChannel = _config.GetValue("ServerConf:BomChannel") ?? "Egw:bom"; + hmlChannel = _config.GetValue("ServerConf:HwListChannel") ?? "Egw:hml"; + updateChannel = _config.GetValue("ServerConf:UpdateChannel") ?? "Egw:update"; // verifico la url base apiUrl = _config.GetValue("ServerConf:Prog.ApiUrl") ?? "https://iis01.egalware.com/lux/srv/api"; imgBasePath = _config.GetValue("ServerConf:ImageBaseUrl") ?? "window"; @@ -118,7 +119,7 @@ namespace EgwCoreLib.Lux.Data.Services string tag = isLive ? liveTag : cacheTag; if (imgUID.EndsWith(".svg")) { - imgUID.Replace(".svg",""); + imgUID.Replace(".svg", ""); } string rndImg = $"{DateTime.Now:HHmmssfff}"; string fullUrl = $"{baseUrl}/{tag}/{imgUID}-{rndImg}.svg?envir={envir}".Replace("////", "//"); @@ -151,6 +152,23 @@ namespace EgwCoreLib.Lux.Data.Services return $"{rawVal}"; } + /// + /// Salva e invia su channel richiesto un update x UID + /// è attesao un refresh per chi sottoscrive il canale + /// + /// + /// + public async Task PublishUpdateAsync(string uid, Constants.EXECENVIRONMENTS env) + { + bool done = false; + // invio notifica sul canale di update generale... + string notifyChannel = $"{updateChannel}:{env}"; + // contenuto è UID + long numSent = await _redisService.PublishAsync(notifyChannel, $"{uid}"); + done = numSent > 0; + return done; + } + /// /// Calcola URL immagine dato /// @@ -188,24 +206,7 @@ namespace EgwCoreLib.Lux.Data.Services } /// - /// Salva e invia su channel richiesto un update x UID - /// è attesao un refresh per chi sottoscrive il canale - /// - /// - /// - public async Task PublishUpdateAsync(string uid, Constants.EXECENVIRONMENTS env) - { - bool done = false; - // invio notifica sul canale di update generale... - string notifyChannel = $"{updateChannel}:{env}"; - // contenuto è UID - long numSent = await _redisService.PublishAsync(notifyChannel, $"{uid}"); - done = numSent > 0; - return done; - } - - /// - /// Salva e invia su channel img redis SVG per il doc richiesto + /// Salva e invia su channel dedicato HML l'elenco degli HarwareModel (conf preferiti) gestiti /// /// /// @@ -220,6 +221,22 @@ namespace EgwCoreLib.Lux.Data.Services return done; } + /// + /// Salva e invia su channel profile list gestiti + /// + /// + /// + public async Task SaveProfileListAsync(string uid, Constants.EXECENVIRONMENTS env, string rawData) + { + // salvo img in cache + string currKey = $"{redisBaseKey}:{env}:PROFLIST:{uid.Replace("/", ":")}"; + var done = await _redisService.SetAsync(currKey, rawData); + // invio notifica nuova svg generata sul canale... viene inviato solo svg con ID nel canale + string notifyChannel = $"{profListChannel}:{uid}"; + long numSent = await _redisService.PublishAsync(notifyChannel, rawData); + return done; + } + /// /// Salva e invia su channel img redis SVG per il doc richiesto /// @@ -265,18 +282,16 @@ namespace EgwCoreLib.Lux.Data.Services private readonly string apiUrl = ""; private readonly string bomChannel = "bom:item"; - private readonly string updateChannel = "ui:update"; private readonly string cacheTag = "svgfile"; private readonly string calcTag = "svgpreview"; private readonly string hmlChannel = "hml:item"; + private readonly string hwOptChannel = "hw:opt"; private readonly string imgBasePath = ""; private readonly string liveTag = "svg"; - - private readonly string svgChannel = "svg:img"; - private readonly string shapeChannel = "shape:curr"; - private readonly string hwOptChannel = "hw:opt"; private readonly string profListChannel = "prof:list"; - + private readonly string shapeChannel = "shape:curr"; + private readonly string svgChannel = "svg:img"; + private readonly string updateChannel = "ui:update"; private IConfiguration _config; private string imageBaseUrl = ""; diff --git a/Lux.API/Lux.API.csproj b/Lux.API/Lux.API.csproj index 823f6426..2a4c46f5 100644 --- a/Lux.API/Lux.API.csproj +++ b/Lux.API/Lux.API.csproj @@ -4,7 +4,7 @@ net8.0 enable enable - 0.9.2510.2119 + 0.9.2510.2210 diff --git a/Lux.API/Services/ExternalMessageProcessor.cs b/Lux.API/Services/ExternalMessageProcessor.cs index 9c856bc4..ba276909 100644 --- a/Lux.API/Services/ExternalMessageProcessor.cs +++ b/Lux.API/Services/ExternalMessageProcessor.cs @@ -50,24 +50,24 @@ namespace Lux.API.Services // gestione ritorno preview SVG if (retData.Args.ContainsKey("Svg")) { - // dovrei leggere dagli args l'IUID dell'SVG ritornato... - // salvo SVG - string newSvg = retData.Args["Svg"]; + // recupero UID ed SVG string UID = retData.Args["UID"]; + string newSvg = retData.Args["Svg"]; + // reinvio in redis (cache + channel) await cacheService.SaveSvgAsync(UID, retData.ExecEnvironment, newSvg); } // gesitone ritorno BOM if (retData.Args.ContainsKey("BOM")) { - string newBom = retData.Args["BOM"]; + // recupero UID e BOM string UID = retData.Args["UID"]; - // salvo BOM ricevuta RAW in redis + string newBom = retData.Args["BOM"]; + // salvo BOM ricevuta RAW in redis (cache) await cacheService.SaveBomAsync(UID, retData.ExecEnvironment, newBom); // salvo la BOM completa con i dati recuperati dal DB await dbService.SaveBomAsync(UID, retData.ExecEnvironment, newBom); - - // pubblico refresh info così da segnalare richeista di update conseguente + // pubblico refresh info così da segnalare richiesta di update conseguente await cacheService.PublishUpdateAsync(UID, retData.ExecEnvironment); } @@ -75,20 +75,20 @@ namespace Lux.API.Services if (retData.Args.ContainsKey("SashShape")) { //// salvo HardwareList ricevuta - //string newHml = retData.Args["HardwareModelList"]; + //string profList = retData.Args["HardwareModelList"]; //string UID = retData.Args["UID"]; - //await cacheService.SaveHmlAsync(UID, retData.ExecEnvironment, newHml); - //await dbService.SaveHmlAsync(UID, retData.ExecEnvironment, newHml); + //await cacheService.SaveHmlAsync(UID, retData.ExecEnvironment, profList); + //await dbService.SaveHmlAsync(UID, retData.ExecEnvironment, profList); } // gestione ritorno opzioni HW if (retData.Args.ContainsKey("HardwareOptions")) { //// salvo HardwareList ricevuta - //string newHml = retData.Args["HardwareModelList"]; + //string profList = retData.Args["HardwareModelList"]; //string UID = retData.Args["UID"]; - //await cacheService.SaveHmlAsync(UID, retData.ExecEnvironment, newHml); - //await dbService.SaveHmlAsync(UID, retData.ExecEnvironment, newHml); + //await cacheService.SaveHmlAsync(UID, retData.ExecEnvironment, profList); + //await dbService.SaveHmlAsync(UID, retData.ExecEnvironment, profList); } @@ -100,9 +100,10 @@ namespace Lux.API.Services // Gestione ritorno lista preferiti HW (ammissibili) if (retData.Args.ContainsKey("HardwareModelList")) { - // salvo HardwareList ricevuta - string newHml = retData.Args["HardwareModelList"]; + // recupero UID e lista preferiti HW string UID = retData.Args["UID"]; + string newHml = retData.Args["HardwareModelList"]; + // salvo HardwareList ricevuta await cacheService.SaveHmlAsync(UID, retData.ExecEnvironment, newHml); await dbService.SaveHmlAsync(UID, retData.ExecEnvironment, newHml); } @@ -110,11 +111,12 @@ namespace Lux.API.Services // gestione ritorno lista profili VALIDI per JWD if (retData.Args.ContainsKey("ProfileList")) { - //// salvo HardwareList ricevuta - //string newHml = retData.Args["HardwareModelList"]; - //string UID = retData.Args["UID"]; - //await cacheService.SaveHmlAsync(UID, retData.ExecEnvironment, newHml); - //await dbService.SaveHmlAsync(UID, retData.ExecEnvironment, newHml); + // recupero UID e elenco profili validi + string UID = retData.Args["UID"]; + string profList = retData.Args["ProfileList"]; + // salvo ProfileList ricevuta + await cacheService.SaveProfileListAsync(UID, retData.ExecEnvironment, profList); + await dbService.SaveProfileListAsync(UID, retData.ExecEnvironment, profList); } } diff --git a/Lux.API/appsettings.Development.json b/Lux.API/appsettings.Development.json index e186d4f6..5da17538 100644 --- a/Lux.API/appsettings.Development.json +++ b/Lux.API/appsettings.Development.json @@ -7,8 +7,8 @@ }, "ServerConf": { "BaseUrl": "/lux/srv/", - "PubChannel": "EgwDevEngineInput", - "SubChannel": "EgwDevEngineOutput", + //"PubChannel": "EgwDevEngineInput", + //"SubChannel": "EgwDevEngineOutput", "ImageBaseUrl": "https://iis01.egalware.com/lux/srv/api/window/" } } diff --git a/Lux.API/appsettings.json b/Lux.API/appsettings.json index 9523adae..75da3ce4 100644 --- a/Lux.API/appsettings.json +++ b/Lux.API/appsettings.json @@ -60,6 +60,7 @@ "SubChannel": "EgwEngineOutput", "SvgChannel": "Egw:svg:img", "ShapeChannel": "Egw:shape:curr", + "HwListChannel": "Egw:hw:list", "HwOptChannel": "Egw:hw:opt", "ProfListChannel": "Egw:prof:list", "BomChannel": "Egw:bom", diff --git a/Lux.UI/Components/Compo/Config/HardwareMan.razor b/Lux.UI/Components/Compo/Config/HardwareMan.razor index 4b250fb1..9d40f7fe 100644 --- a/Lux.UI/Components/Compo/Config/HardwareMan.razor +++ b/Lux.UI/Components/Compo/Config/HardwareMan.razor @@ -1,8 +1,13 @@ 
-
+
-
-
Conf. Hardware
+
+
+
Conf. Hardware
+
+
+ +
@@ -10,7 +15,7 @@
- +
@@ -31,8 +36,8 @@ - @* *@ diff --git a/Lux.UI/Components/Compo/Config/HardwareMan.razor.cs b/Lux.UI/Components/Compo/Config/HardwareMan.razor.cs index 475beebb..e37b68fc 100644 --- a/Lux.UI/Components/Compo/Config/HardwareMan.razor.cs +++ b/Lux.UI/Components/Compo/Config/HardwareMan.razor.cs @@ -1,17 +1,42 @@ +using EgwCoreLib.Lux.Core.RestPayload; using EgwCoreLib.Lux.Data.DbModel.Config; +using EgwCoreLib.Lux.Data.DbModel.Sales; using EgwCoreLib.Lux.Data.Services; +using EgwMultiEngineManager.Data; using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; +using System.Threading.Tasks; namespace Lux.UI.Components.Compo.Config { - public partial class HardwareMan + public partial class HardwareMan : IDisposable { + #region Public Methods + + /// + /// Dispose sottoscrizione canale + /// + public void Dispose() + { + DLService.PipeHwList.EA_NewMessage -= PipeHwList_EA_NewMessage; + } + + #endregion Public Methods + #region Protected Properties [Inject] protected ConfigDataService CDService { get; set; } = null!; + [Inject] + protected IConfiguration Config { get; set; } = null!; + + [Inject] + protected CalcRequestService CService { get; set; } = null!; + + [Inject] + protected DataLayerServices DLService { get; set; } = null!; + [Inject] protected IJSRuntime JSRuntime { get; set; } = null!; @@ -36,19 +61,18 @@ namespace Lux.UI.Components.Compo.Config /// /// Reset selezione /// - protected void DoReset() + protected async Task DoReqUpdate() { - EditRecord = null; - SelRecord = null; + // chiamata richiesta update da calc + await callRefreshHwList(confHw); } - /// - /// Selezione articolo x display info - /// - /// - protected void DoSelect(HardwareModel curRec) + protected override void OnInitialized() { - SelRecord = curRec; + apiUrl = Config.GetValue("ServerConf:Prog.ApiUrl") ?? ""; + genericBasePath = Config.GetValue("ServerConf:GenericBaseUrl") ?? ""; + calcTag = Config.GetValue("ServerConf:CalcTag") ?? "calc"; + DLService.PipeHwList.EA_NewMessage += PipeHwList_EA_NewMessage; } protected override void OnParametersSet() @@ -79,80 +103,86 @@ namespace Lux.UI.Components.Compo.Config #region Private Fields private List AllRecords = new(); + + private string apiUrl = ""; + + private string calcTag = "calc"; + + /// + /// Conf HW corrente (produttore) - gestire con conf? + /// + private string confHw = "HW.AGB"; + private int currPage = 1; - private HardwareModel? EditRecord = null; + + private string genericBasePath = "generic"; + private bool isLoading = false; + private List ListRecords = new(); + private int numRecord = 5; - private HardwareModel? SelRecord = null; + private int totalCount = 0; #endregion Private Fields #region Private Properties + private string btnResetCss + { + get => string.IsNullOrEmpty(searchVal) ? "btn-outline-light" : "btn-primary"; + } + private string searchVal { get; set; } = string.Empty; #endregion Private Properties -#if false - /// - /// impossta record x eliminazione - /// - /// - protected async Task DoDelete(HardwareModel selRec) - { - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler eliminare il record? Dettagli: {selRec.HardwareID} | {selRec.Description} | {selRec.Thickness}")) - return; - - // esegue eliminazione del record... - await CDService.ConfHardwareDeleteAsync(selRec); - - EditRecord = null; - SelRecord = null; - await ReloadData(); - UpdateTable(); - } - - /// - /// Edit articolo selezionato - /// - /// - protected void DoEdit(HardwareModel curRec) - { - EditRecord = curRec; - } -#endif -#if false - private async Task DoAdd() - { - // aggiungo un nuovo record in coda... - EditRecord = new HardwareModel() - { - Description = "New Glass", - Code = "", - Thickness = 30 - }; - await DoSave(EditRecord); - } - - private async Task DoSave(HardwareModel currRec) - { - // salvo - await CDService.ConfHardwareUpsertAsync(currRec); - await ResetEdit(); - UpdateTable(); - EditRecord = null; - SelRecord = null; - } -#endif - #region Private Methods + /// + /// Effettua vera richiesta della BOM + /// + /// + /// + private async Task callRefreshHwList(string reqUid) + { + Dictionary DictExec = new Dictionary(); + DictExec.Add("Mode", $"{(int)Egw.Window.Data.Enums.QuestionModes.HARDWARE}"); + // da rivedere? + DictExec.Add("UID", reqUid); + DictExec.Add("SubMode", $"{(int)Egw.Window.Data.Enums.QuestionHwSubModes.LIST}"); + DictExec.Add("Manufacturer", $"{(int)Egw.Window.Data.Enums.HardwareManufacturers.AGB}"); + CalcRequestDTO req = new CalcRequestDTO() + { + EnvType = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, + DictExec = DictExec + }; + // svuotiamo cache dati... + AllRecords = new List(); + isLoading = true; + + // chiamo la chiamata POST alla API, che manda la richiesta via REDIS + await CService.CallRestPost($"{apiUrl}/{genericBasePath}", $"{calcTag}/{reqUid}", req); + } + + /// + /// Ricevuto update da Calc x elenco HW: aggiorno! + /// + /// + /// + /// + private void PipeHwList_EA_NewMessage(object? sender, EventArgs e) + { + ReloadData(); + UpdateTable(); + _ = InvokeAsync(StateHasChanged); + } + private void ReloadData() { isLoading = true; - AllRecords = CDService.ElencoHw(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, "HW.AGB"); + AllRecords = CDService.ElencoHw(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, confHw); // se ho ricerca testuale faccio filtro ulteriore... if (string.IsNullOrEmpty(SearchVal)) { @@ -172,15 +202,6 @@ namespace Lux.UI.Components.Compo.Config totalCount = AllRecords.Count; } -#if false - private void ResetEdit() - { - // reset edit - EditRecord = null; - ReloadData(); - } -#endif - /// /// Filtro e paginazione /// diff --git a/Lux.UI/Components/Compo/Config/ProfileMan.razor b/Lux.UI/Components/Compo/Config/ProfileMan.razor index 7830abbc..40a2a35e 100644 --- a/Lux.UI/Components/Compo/Config/ProfileMan.razor +++ b/Lux.UI/Components/Compo/Config/ProfileMan.razor @@ -1,5 +1,5 @@ 
-
+
Conf. Profilo
@@ -10,7 +10,7 @@
- +
diff --git a/Lux.UI/Components/Compo/Config/ProfileMan.razor.cs b/Lux.UI/Components/Compo/Config/ProfileMan.razor.cs index dd879512..e32869a3 100644 --- a/Lux.UI/Components/Compo/Config/ProfileMan.razor.cs +++ b/Lux.UI/Components/Compo/Config/ProfileMan.razor.cs @@ -2,6 +2,7 @@ using EgwCoreLib.Lux.Data.DbModel.Config; using EgwCoreLib.Lux.Data.Services; using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; +using System.ComponentModel; namespace Lux.UI.Components.Compo.Config { @@ -116,6 +117,11 @@ namespace Lux.UI.Components.Compo.Config #region Private Properties + private string btnResetCss + { + get => string.IsNullOrEmpty(searchVal) ? "btn-outline-light" : "btn-primary"; + } + private string searchVal { get; set; } = string.Empty; #endregion Private Properties diff --git a/Lux.UI/Components/Compo/OfferRowMan.razor.cs b/Lux.UI/Components/Compo/OfferRowMan.razor.cs index dd8a3974..00ce3ebc 100644 --- a/Lux.UI/Components/Compo/OfferRowMan.razor.cs +++ b/Lux.UI/Components/Compo/OfferRowMan.razor.cs @@ -581,9 +581,7 @@ namespace Lux.UI.Components.Compo /// private OfferRowModel? EditRecord = null; - private string genBasePath = "generic"; - - private string GenericBasePath = ""; + private string genericBasePath = ""; /// /// Channel update HwOptions @@ -675,7 +673,7 @@ namespace Lux.UI.Components.Compo calcRequestDTO.EnvType = EditRecord.Envir; calcRequestDTO.DictExec = reqDict; // chiamo la chiamata POST alla API, che manda la richiesta via REDIS - await ICService.CallRestPost($"{apiUrl}/{GenericBasePath}", $"{calcTag}/{EditRecord.OfferRowUID}", calcRequestDTO); + await ICService.CallRestPost($"{apiUrl}/{genericBasePath}", $"{calcTag}/{EditRecord.OfferRowUID}", calcRequestDTO); } EditRecord = null; CurrEditMode = EditMode.None; @@ -686,7 +684,7 @@ namespace Lux.UI.Components.Compo { apiUrl = Config.GetValue("ServerConf:Prog.ApiUrl") ?? ""; imgBasePath = Config.GetValue("ServerConf:ImageBaseUrl") ?? ""; - GenericBasePath = Config.GetValue("ServerConf:GenericBaseUrl") ?? ""; + genericBasePath = Config.GetValue("ServerConf:GenericBaseUrl") ?? ""; calcTag = Config.GetValue("ServerConf:CalcTag") ?? "calc"; svgChannel = Config.GetValue("ServerConf:SvgChannel") ?? ""; shapeChannel = Config.GetValue("ServerConf:ShapeChannel") ?? ""; @@ -840,7 +838,6 @@ namespace Lux.UI.Components.Compo /// /// /// - /// private async void PipeUpdate_EA_NewMessage(object? sender, EventArgs e) { // aggiorno visualizzazione @@ -973,7 +970,7 @@ namespace Lux.UI.Components.Compo await InvokeAsync(StateHasChanged); // chiamo la chiamata POST alla API, che manda la richiesta via REDIS - await CService.CallRestPost($"{apiUrl}/{genBasePath}", $"{calcTag}/{currRec.OfferRowUID}", req); + await CService.CallRestPost($"{apiUrl}/{genericBasePath}", $"{calcTag}/{currRec.OfferRowUID}", req); } /// @@ -1019,7 +1016,7 @@ namespace Lux.UI.Components.Compo calcRequestDTO.EnvType = EditRecord.Envir; calcRequestDTO.DictExec = reqDict; // chiamo la chiamata POST alla API, che manda la richiesta via REDIS - await ICService.CallRestPost($"{apiUrl}/{GenericBasePath}", $"{calcTag}/{EditRecord.OfferRowUID}", calcRequestDTO); + await ICService.CallRestPost($"{apiUrl}/{genericBasePath}", $"{calcTag}/{EditRecord.OfferRowUID}", calcRequestDTO); #if false // salvo su DB! await DLService.OffertRowUpdateSerStruct(EditRecord.OfferRowID, serStruct); @@ -1127,7 +1124,7 @@ namespace Lux.UI.Components.Compo CalcRequestDTO calcRequestDTO = new CalcRequestDTO(); calcRequestDTO.EnvType = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.BEAM; calcRequestDTO.DictExec = fileArgs; - await ICService.CallRestPost($"{apiUrl}/{GenericBasePath}", $"{calcTag}/{EditRecord.OfferRowUID}", calcRequestDTO); + await ICService.CallRestPost($"{apiUrl}/{genericBasePath}", $"{calcTag}/{EditRecord.OfferRowUID}", calcRequestDTO); #if false // salvo in locale il file: SISTEMARE PERMESSI diff --git a/Lux.UI/Components/Pages/ConfList.razor b/Lux.UI/Components/Pages/ConfList.razor index cdcfa327..c1df5c17 100644 --- a/Lux.UI/Components/Pages/ConfList.razor +++ b/Lux.UI/Components/Pages/ConfList.razor @@ -19,15 +19,15 @@
-
- -
+
+ +
diff --git a/Lux.UI/Lux.UI.csproj b/Lux.UI/Lux.UI.csproj index 2f6109c3..d7c952de 100644 --- a/Lux.UI/Lux.UI.csproj +++ b/Lux.UI/Lux.UI.csproj @@ -5,7 +5,7 @@ enable enable aspnet-Lux.UI-a758c101-a2f4-4e38-977d-1c4887dbbd50 - 0.9.2510.2119 + 0.9.2510.2210 diff --git a/Lux.UI/appsettings.json b/Lux.UI/appsettings.json index 6d57a0b3..64d5afae 100644 --- a/Lux.UI/appsettings.json +++ b/Lux.UI/appsettings.json @@ -68,6 +68,7 @@ "SubChannel": "EgwEngineOutput", "SvgChannel": "Egw:svg:img", "ShapeChannel": "Egw:shape:curr", + "HwListChannel": "Egw:hw:list", "HwOptChannel": "Egw:hw:opt", "ProfListChannel": "Egw:prof:list", "BomChannel": "Egw:bom", diff --git a/Resources/ChangeLog.html b/Resources/ChangeLog.html index cc71e5ad..dddf04f4 100644 --- a/Resources/ChangeLog.html +++ b/Resources/ChangeLog.html @@ -1,6 +1,6 @@ LUX - Web Windows MES -

Versione: 0.9.2510.2119

+

Versione: 0.9.2510.2210


Note di rilascio:
  • diff --git a/Resources/VersNum.txt b/Resources/VersNum.txt index f62264ef..e24a0fbd 100644 --- a/Resources/VersNum.txt +++ b/Resources/VersNum.txt @@ -1 +1 @@ -0.9.2510.2119 +0.9.2510.2210 diff --git a/Resources/manifest.xml b/Resources/manifest.xml index 9355c517..2420eece 100644 --- a/Resources/manifest.xml +++ b/Resources/manifest.xml @@ -1,6 +1,6 @@ - 0.9.2510.2119 + 0.9.2510.2210 http://nexus.steamware.net/repository/SWS/GPW/stable/GPW.UI.zip http://nexus.steamware.net/repository/SWS/GPW/stable/ChangeLog.html false
- + + Cod. IDFam.