Aggiunta serializzazione e deserializzazione Hw option

This commit is contained in:
Annamaria Sassi
2025-10-30 14:52:12 +01:00
parent 9d4d6128c3
commit 2e4bc8b4d3
10 changed files with 183 additions and 34 deletions
+32
View File
@@ -0,0 +1,32 @@
@using static WebWindowComplex.Json.WindowConst
@if (CurrSash.HwOptionList.Count > 0)
{
<div class="row">
<div class="col-sm-6">
<div class="row">
<div class="col d-flex justify-content-start align-items-center">
<h6 class="fw-bold">Hardware option</h6>
</div>
</div>
@foreach (var currOpt in CurrSash.HwOptionList)
{
switch (currOpt.Type)
{
case HwOptionTypes.COMBO:
{
AGBOptionCombo currOptCombo = (AGBOptionCombo)currOpt;
<EditOptionCombo CurrOpt="currOptCombo" EC_Update="RaiseOptCombo"></EditOptionCombo>
break;
}
case HwOptionTypes.TEXT:
{
AGBOptionText currOptText = (AGBOptionText)currOpt;
<EditOptionText CurrOpt="currOptText" EC_Update="RaiseOptText"></EditOptionText>
break;
}
}
}
</div>
</div>
}
@@ -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
{
/// <summary>
/// Sash corrente rispetto alla lista Sash
/// </summary>
[Parameter]
public Sash CurrSash { get; set; } = null!;
/// <summary>
/// Evento per aggiornare gli hardware option di tipo combo
/// </summary>
[Parameter]
public EventCallback<AGBOptionCombo> EC_UpdateHwOptCombo { get; set; }
/// <summary>
/// Evento per aggiornare gli hardware option di tipo text
/// </summary>
[Parameter]
public EventCallback<AGBOptionText> EC_UpdateHwOptText { get; set; }
/// <summary>
/// Report aggiornamento Option Combo
/// </summary>
/// <param name="updRec"></param>
/// <returns></returns>
private async Task RaiseOptCombo(AGBOptionCombo updRec)
{
await EC_UpdateHwOptCombo.InvokeAsync(updRec);
}
/// <summary>
/// Report aggiornamento Option Text
/// </summary>
/// <param name="updRec"></param>
/// <returns></returns>
private async Task RaiseOptText(AGBOptionText updRec)
{
await EC_UpdateHwOptText.InvokeAsync(updRec);
}
}
}
+3 -2
View File
@@ -116,7 +116,8 @@
}
</div>
</div>
<div class="row">
<AreaHwOption CurrSash="CurrItem" EC_UpdateHwOptCombo="UpdateOptCombo" EC_UpdateHwOptText="UpdateOptText"></AreaHwOption>
@* <div class="row">
<div class="col-sm-6">
<div class="row">
<div class="col d-flex justify-content-start align-items-center">
@@ -145,7 +146,7 @@
}
}
</div>
</div>
</div> *@
</div>
</div>
+2 -2
View File
@@ -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)
+33 -26
View File
@@ -96,7 +96,6 @@ namespace WebWindowComplex.Models
}
}
public List<Joint> 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)
+1 -1
View File
@@ -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()
+7 -1
View File
@@ -6,7 +6,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>2.7.10.2916</Version>
<Version>2.7.10.3014</Version>
<Authors>Annamaria Sassi</Authors>
<Company>Egalware</Company>
<Description>Componente gestione Configurazioni avanzate Window per LUX</Description>
@@ -194,6 +194,12 @@