diff --git a/Test.UI/Components/Pages/TestComponent.razor.cs b/Test.UI/Components/Pages/TestComponent.razor.cs index c011a9b..184e118 100644 --- a/Test.UI/Components/Pages/TestComponent.razor.cs +++ b/Test.UI/Components/Pages/TestComponent.razor.cs @@ -1,3 +1,4 @@ +using EgwCoreLib.Lux.Core; using EgwCoreLib.Lux.Data.Services; using Microsoft.AspNetCore.Components; using Newtonsoft.Json; @@ -7,7 +8,7 @@ using WebWindowConfigurator.DTO; namespace Test.UI.Components.Pages { - public partial class TestComponent + public partial class TestComponent : IDisposable { #region Public Properties @@ -15,6 +16,15 @@ namespace Test.UI.Components.Pages #endregion Public Properties + #region Public Methods + + public void Dispose() + { + DLService.CalcDonePipe.EA_NewMessage -= CalcDonePipe_EA_NewMessage; + } + + #endregion Public Methods + #region Protected Fields protected string currJwd = "..."; @@ -25,6 +35,15 @@ namespace Test.UI.Components.Pages protected List AvailTemplateList { get; set; } = new List(); + [Inject] + protected IConfiguration Config { get; set; } = null!; + + [Inject] + protected DataLayerServices DLService { get; set; } = null!; + + [Inject] + protected ImageCacheService ICService { get; set; } = null!; + protected MarkupString JsonSer { get => (MarkupString)currJwd.Replace(Environment.NewLine, "
").Replace(" ", " "); @@ -37,21 +56,70 @@ namespace Test.UI.Components.Pages protected override async Task OnInitializedAsync() { ConfInit(); + DLService.CalcDonePipe.EA_NewMessage += CalcDonePipe_EA_NewMessage; await ReloadData(); } - [Inject] - protected IConfiguration Config { get; set; } = null!; + #endregion Protected Methods - [Inject] - protected ImageCacheService ImgService { get; set; } = null!; + #region Private Fields + + private string apiUrl = ""; + private string calcTag = ""; + private string cFile = "Data/Setup.json"; + private TemplateSelectDTO? currSel = null; + private string currSvg = ""; private string imgBasePath = ""; + private string imgTag = ""; + + private string subChannel = ""; + + #endregion Private Fields + + #region Private Properties + + private string windowUid + { + get + { + string answ = ""; + if (currSel != null) + { + answ = currSel.SVGFileName.Replace(".svg", ""); + } + return answ; + } + } + + #endregion Private Properties + + #region Private Methods + + private async void CalcDonePipe_EA_NewMessage(object? sender, EventArgs e) + { + // aggiorno visualizzazione + PubSubEventArgs currArgs = (PubSubEventArgs)e; + // conversione on-the-fly SVG da mostrare + if (!string.IsNullOrEmpty(currArgs.newMessage)) + { + if (currArgs.msgUid.Equals($"{subChannel}:{windowUid}")) + { + currSvg = currArgs.newMessage; + } + await InvokeAsync(StateHasChanged); + } + await Task.Delay(1); + } + private void ConfInit() { + apiUrl = Config.GetValue("ServerConf:Prog.ApiUrl") ?? ""; imgBasePath = Config.GetValue("ServerConf:ImageBaseUrl") ?? ""; imgTag = Config.GetValue("ServerConf:ImageFileTag") ?? ""; + calcTag = Config.GetValue("ServerConf:ImageCalcTag") ?? ""; + subChannel = Config.GetValue("ServerConf:SvgChannel") ?? ""; } /// @@ -72,32 +140,26 @@ namespace Test.UI.Components.Pages // calcolo URL immagini... DTO interno da rivedere? foreach (var item in rawList) { - item.ImageUrl = ImgService.ImageUrl(imgBasePath, false, item.SVGFileName); + item.ImageUrl = ICService.ImageUrl(imgBasePath, false, item.SVGFileName); AvailTemplateList.Add(item); } } } - - - #endregion Protected Methods - - #region Private Fields - - private string cFile = "Data/Setup.json"; - - #endregion Private Fields - - #region Private Methods - - private void SaveJWD(string newSerial) + private async Task SaveJWD(string newSerial) { currJwd = newSerial; + // chiamo la chiamata POST alla API, che manda la richiesta via REDIS + if (currSel != null) + { + await ICService.CallRestPost(apiUrl, $"{calcTag}/{windowUid}", currJwd); + } } private void SetTemplate(TemplateSelectDTO selTemp) { string rawVal = ""; + currSel = selTemp; // brutale,d a rivedere... if (File.Exists(selTemp.JwdFileName)) { diff --git a/Test.UI/Program.cs b/Test.UI/Program.cs index 83cdfb8..f89a899 100644 --- a/Test.UI/Program.cs +++ b/Test.UI/Program.cs @@ -25,6 +25,8 @@ builder.Services.AddSingleton(redisConn); // registro wrapper servizi REDIS builder.Services.AddSingleton(); builder.Services.AddSingleton(); +// Aggiunta servizi specifici +builder.Services.AddSingleton(); builder.Services.AddSingleton(); diff --git a/Test.UI/Test.UI.csproj b/Test.UI/Test.UI.csproj index 8c5292c..411163c 100644 --- a/Test.UI/Test.UI.csproj +++ b/Test.UI/Test.UI.csproj @@ -25,11 +25,12 @@ - - + + + diff --git a/Test.UI/appsettings.json b/Test.UI/appsettings.json index c419fdb..5417cdf 100644 --- a/Test.UI/appsettings.json +++ b/Test.UI/appsettings.json @@ -13,8 +13,10 @@ "PubChannel": "EgwEngineInput", "SubChannel": "EgwEngineOutput", "SvgChannel": "svg:img", + "Prog.ApiUrl": "https://iis01.egalware.com/lux/srv/api/window", "ImageBaseUrl": "https://iis01.egalware.com/lux/srv/api/window", "ImageLiveTag": "svg", - "ImageFileTag": "svgfile" + "ImageFileTag": "svgfile", + "ImageCalcTag": "svg-preview" } }