From 2e4bc8b4d354bf859a152ae827f194cf493ff52d Mon Sep 17 00:00:00 2001 From: Annamaria Sassi Date: Thu, 30 Oct 2025 14:52:12 +0100 Subject: [PATCH] Aggiunta serializzazione e deserializzazione Hw option --- Test.UI/Components/Pages/EditJWD.razor.cs | 2 +- Test.UI/Data/AntaSingola.jwd | 26 ++++++++ WebWindowComplex/Compo/AreaHwOption.razor | 32 ++++++++++ WebWindowComplex/Compo/AreaHwOption.razor.cs | 49 +++++++++++++++ WebWindowComplex/Compo/CardSashGroup.razor | 5 +- WebWindowComplex/Json/JsonUtility.cs | 4 +- WebWindowComplex/Models/Sash.cs | 59 +++++++++++-------- WebWindowComplex/TableComp.razor.cs | 2 +- WebWindowComplex/WebWindowComplex.csproj | 8 ++- .../WebWindowConfigurator.csproj | 30 +++++++++- 10 files changed, 183 insertions(+), 34 deletions(-) create mode 100644 WebWindowComplex/Compo/AreaHwOption.razor create mode 100644 WebWindowComplex/Compo/AreaHwOption.razor.cs diff --git a/Test.UI/Components/Pages/EditJWD.razor.cs b/Test.UI/Components/Pages/EditJWD.razor.cs index 364dac9..1b5abca 100644 --- a/Test.UI/Components/Pages/EditJWD.razor.cs +++ b/Test.UI/Components/Pages/EditJWD.razor.cs @@ -137,7 +137,7 @@ namespace Test.UI.Components.Pages { ConfInit(); //InitialJwd = File.ReadAllText("Data\\FinestraDueAnteSeparate.jwd"); - InitialJwd = File.ReadAllText("Data\\AntaDoppia.jwd"); + InitialJwd = File.ReadAllText("Data\\AntaSingola.jwd"); currJwd = InitialJwd; // rileggo altri dati await ReloadData(); diff --git a/Test.UI/Data/AntaSingola.jwd b/Test.UI/Data/AntaSingola.jwd index 6252894..1b4c092 100644 --- a/Test.UI/Data/AntaSingola.jwd +++ b/Test.UI/Data/AntaSingola.jwd @@ -70,6 +70,32 @@ } ], "Hardware": "000635", + "HwOptionList": [ + { + "Name": "Entrata", + "Value": "15 mm" + }, + { + "Name": "LavManigliaPassante", + "Value": "No" + }, + { + "Name": "PosizioneForoCilindro", + "Value": "Cilindro sopra la maniglia" + }, + { + "Name": "ModelloCilindro", + "Value": "Nessun cilindro" + }, + { + "Name": "LavCilindroPassante", + "Value": "No" + }, + { + "Name": "HMan", + "Value": "400" + } + ], "GroupId": 2, "AreaList": [ { diff --git a/WebWindowComplex/Compo/AreaHwOption.razor b/WebWindowComplex/Compo/AreaHwOption.razor new file mode 100644 index 0000000..7eb168f --- /dev/null +++ b/WebWindowComplex/Compo/AreaHwOption.razor @@ -0,0 +1,32 @@ +@using static WebWindowComplex.Json.WindowConst + +@if (CurrSash.HwOptionList.Count > 0) +{ +
+
+
+
+
Hardware option
+
+
+ @foreach (var currOpt in CurrSash.HwOptionList) + { + switch (currOpt.Type) + { + case HwOptionTypes.COMBO: + { + AGBOptionCombo currOptCombo = (AGBOptionCombo)currOpt; + + break; + } + case HwOptionTypes.TEXT: + { + AGBOptionText currOptText = (AGBOptionText)currOpt; + + break; + } + } + } +
+
+} \ No newline at end of file diff --git a/WebWindowComplex/Compo/AreaHwOption.razor.cs b/WebWindowComplex/Compo/AreaHwOption.razor.cs new file mode 100644 index 0000000..ba75421 --- /dev/null +++ b/WebWindowComplex/Compo/AreaHwOption.razor.cs @@ -0,0 +1,49 @@ +using Microsoft.AspNetCore.Components; +using System.Runtime.CompilerServices; +using WebWindowComplex.Models; +using static WebWindowComplex.Json.WindowConst; + +namespace WebWindowComplex.Compo +{ + public partial class AreaHwOption + { + /// + /// Sash corrente rispetto alla lista Sash + /// + [Parameter] + public Sash CurrSash { get; set; } = null!; + + /// + /// Evento per aggiornare gli hardware option di tipo combo + /// + [Parameter] + public EventCallback EC_UpdateHwOptCombo { get; set; } + + /// + /// Evento per aggiornare gli hardware option di tipo text + /// + [Parameter] + public EventCallback EC_UpdateHwOptText { get; set; } + + /// + /// Report aggiornamento Option Combo + /// + /// + /// + private async Task RaiseOptCombo(AGBOptionCombo updRec) + { + await EC_UpdateHwOptCombo.InvokeAsync(updRec); + } + + /// + /// Report aggiornamento Option Text + /// + /// + /// + private async Task RaiseOptText(AGBOptionText updRec) + { + await EC_UpdateHwOptText.InvokeAsync(updRec); + } + + } +} \ No newline at end of file diff --git a/WebWindowComplex/Compo/CardSashGroup.razor b/WebWindowComplex/Compo/CardSashGroup.razor index b793057..3384dc4 100644 --- a/WebWindowComplex/Compo/CardSashGroup.razor +++ b/WebWindowComplex/Compo/CardSashGroup.razor @@ -116,7 +116,8 @@ } -
+ + @*
@@ -145,7 +146,7 @@ } }
-
+
*@
diff --git a/WebWindowComplex/Json/JsonUtility.cs b/WebWindowComplex/Json/JsonUtility.cs index f8d35e0..f66b5ac 100644 --- a/WebWindowComplex/Json/JsonUtility.cs +++ b/WebWindowComplex/Json/JsonUtility.cs @@ -415,8 +415,8 @@ namespace WebWindowComplex.Json newSash.SetSelFamilyHardwareFromIndex(Hardware); newSash.ReqRefreshShape(); newSash.SetSelHardwareFromId(Hardware); - //foreach (var HwOption in m_HwOptionList) - // newSash.SelHwOptionList.Add(HwOption.Name, HwOption.Value); + foreach (var HwOption in m_HwOptionList) + newSash.SelHwOptionList.Add(HwOption.Name, HwOption.Value); //foreach (var HwOption in m_HwOptionList) // newSash.HwOptionList.Add(HwOption.Deserialize()); foreach (var Area in AreaList) diff --git a/WebWindowComplex/Models/Sash.cs b/WebWindowComplex/Models/Sash.cs index 2c19ef9..ce3ed2e 100644 --- a/WebWindowComplex/Models/Sash.cs +++ b/WebWindowComplex/Models/Sash.cs @@ -96,7 +96,6 @@ namespace WebWindowComplex.Models } } - public List JointList { get @@ -665,8 +664,16 @@ namespace WebWindowComplex.Models JsonSash.SashList.Add(SashDimension.Serialize()); foreach (var Joint in JointList) JsonSash.JointList.Add(Joint.Serialize()); - foreach (var HwOption in HwOptionList) - JsonSash.HwOptionList.Add(HwOption.Serialize()); + if(HwOptionList.Count > 0) + { + foreach (var HwOption in HwOptionList) + JsonSash.HwOptionList.Add(HwOption.Serialize()); + } + else + { + foreach (var HwOption in SelHwOptionList) + JsonSash.HwOptionList.Add(new JsonHwOption(HwOption.Key, HwOption.Value)); + } foreach (var Area in AreaList) JsonSash.AreaList.Add(Area.Serialize(hideHw)); return JsonSash; @@ -728,29 +735,29 @@ namespace WebWindowComplex.Models } } } - //if (SelHwOptionList.Count > 0) - //{ - // foreach(var selHwOption in SelHwOptionList) - // { - // var HwOption = HwOptionList.Where(x => x.sName == selHwOption.Key).First(); - // switch (HwOption.Type) - // { - // case HwOptionTypes.COMBO: - // { - // AGBOptionCombo OptCombo = (AGBOptionCombo)HwOption; - // var selValue = OptCombo.ValueList.Where(x => x.sDescription == selHwOption.Value).First(); - // OptCombo.sValue = selValue; - // break; - // } - // case HwOptionTypes.TEXT: - // { - // AGBOptionText OptText = (AGBOptionText)HwOption; - // OptText.sValue = selHwOption.Value; - // break; - // } - // } - // } - //} + if (SelHwOptionList.Count > 0) + { + foreach (var selHwOption in SelHwOptionList) + { + var HwOption = HwOptionList.Where(x => x.sName == selHwOption.Key).First(); + switch (HwOption.Type) + { + case HwOptionTypes.COMBO: + { + AGBOptionCombo OptCombo = (AGBOptionCombo)HwOption; + var selValue = OptCombo.ValueList.Where(x => x.sDescription == selHwOption.Value).First(); + OptCombo.sValue = selValue; + break; + } + case HwOptionTypes.TEXT: + { + AGBOptionText OptText = (AGBOptionText)HwOption; + OptText.sValue = selHwOption.Value; + break; + } + } + } + } } internal void SetOrientationSashType(OrientationSash value) diff --git a/WebWindowComplex/TableComp.razor.cs b/WebWindowComplex/TableComp.razor.cs index befd99b..652ca8d 100644 --- a/WebWindowComplex/TableComp.razor.cs +++ b/WebWindowComplex/TableComp.razor.cs @@ -602,7 +602,7 @@ namespace WebWindowComplex if (ListPayload.IsValid()) { // SOLO SE modificato live data... - if (prevLiveData == null || !prevLiveData.Equals(LiveData)) + if (prevLiveData == null || !prevLiveData.Equals(LiveData)) { updRequested = true; prevLiveData = new LivePayload() diff --git a/WebWindowComplex/WebWindowComplex.csproj b/WebWindowComplex/WebWindowComplex.csproj index c722e95..9ae30ab 100644 --- a/WebWindowComplex/WebWindowComplex.csproj +++ b/WebWindowComplex/WebWindowComplex.csproj @@ -6,7 +6,7 @@ net8.0 enable enable - 2.7.10.2916 + 2.7.10.3014 Annamaria Sassi Egalware Componente gestione Configurazioni avanzate Window per LUX @@ -194,6 +194,12 @@ + + + + + + diff --git a/WebWindowConfigurator/WebWindowConfigurator.csproj b/WebWindowConfigurator/WebWindowConfigurator.csproj index 0f07a09..98c9676 100644 --- a/WebWindowConfigurator/WebWindowConfigurator.csproj +++ b/WebWindowConfigurator/WebWindowConfigurator.csproj @@ -6,7 +6,7 @@ net8.0 enable enable - 2.7.10.2916 + 2.7.10.3014 Annamaria Sassi Egalware Componente gestione JWD per LUX @@ -259,6 +259,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +