diff --git a/WebWindowComplex/Compo/CardSashGroup.razor.cs b/WebWindowComplex/Compo/CardSashGroup.razor.cs
index ef07d75..c1bed29 100644
--- a/WebWindowComplex/Compo/CardSashGroup.razor.cs
+++ b/WebWindowComplex/Compo/CardSashGroup.razor.cs
@@ -15,6 +15,12 @@ namespace WebWindowComplex.Compo
[CascadingParameter(Name = "CurrSashGroup")]
public Sash CurrSashGroup { get; set; } = null!;
+ ///
+ /// Livello di accesso (utente base)
+ ///
+ [CascadingParameter(Name = "User")]
+ public bool User { get; set; } = false!;
+
///
/// Evento per cambiare tutti i fill
///
@@ -213,7 +219,8 @@ namespace WebWindowComplex.Compo
}
var args = new DataUpdateSash
{
- currSash = CurrSashGroup
+ currSash = CurrSashGroup,
+ noSvg = true
};
await EC_UpdateSashGroup.InvokeAsync(args);
}
@@ -358,6 +365,7 @@ namespace WebWindowComplex.Compo
{
public Sash currSash { get; set; } = null!;
public bool svgNoHw { get; set; } = false;
+ public bool noSvg { get; set; } = false;
}
public class DataUpdateRes
diff --git a/WebWindowComplex/Compo/CardSplit.razor b/WebWindowComplex/Compo/CardSplit.razor
index 35b83e7..4a64d6d 100644
--- a/WebWindowComplex/Compo/CardSplit.razor
+++ b/WebWindowComplex/Compo/CardSplit.razor
@@ -14,15 +14,18 @@
Split
- @if ((CurrSplit.nSplitQtyVert == 1 && CurrSplit.nSplitQtyHoriz == 0) || (CurrSplit.nSplitQtyVert == 0 && CurrSplit.nSplitQtyHoriz == 1))
+ @if (!User)
{
+ @if ((CurrSplit.nSplitQtyVert == 1 && CurrSplit.nSplitQtyHoriz == 0) || (CurrSplit.nSplitQtyVert == 0 && CurrSplit.nSplitQtyHoriz == 1))
+ {
+
+
+
+ }
-
+
}
-
-
-
@@ -129,35 +125,6 @@
Index="i"
EC_Update="UpdateDimension">
- @*
- Height
-
-
-
*@
}
}
@@ -170,37 +137,6 @@
Index="i"
EC_Update="UpdateDimension">
- @*
-
- Height
-
-
-
-
*@
}
}
else if (CurrSplit.SplitVertList.Count > 0)
@@ -212,37 +148,6 @@
Index="i"
EC_Update="UpdateDimension">
- @*
-
- Width
-
-
-
-
*@
}
}
@@ -252,7 +157,14 @@
}
+
+
+ @foreach (var element in CurrSplit.ElemDimHorizList)
+ {
+
+ }
+
+
diff --git a/WebWindowComplex/Compo/CardSplit.razor.cs b/WebWindowComplex/Compo/CardSplit.razor.cs
index 0ccbd3f..010c99e 100644
--- a/WebWindowComplex/Compo/CardSplit.razor.cs
+++ b/WebWindowComplex/Compo/CardSplit.razor.cs
@@ -33,6 +33,12 @@ namespace WebWindowComplex.Compo
[Parameter]
public Frame FrameWindow { get; set; } = null!;
+ ///
+ /// Livello di accesso (utente base)
+ ///
+ [CascadingParameter(Name = "User")]
+ public bool User { get; set; } = false!;
+
///
/// Evento per richiedere reset dizionario
///
@@ -107,11 +113,11 @@ namespace WebWindowComplex.Compo
{
currSplit = CurrSplit
};
- if (SearchSash(CurrSplit))
- {
+ // Se la shape selezionata grid o custom, richiede reset shape
+ if(value > 2)
_ = EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = DataAction.ResetDictShape });
+ if (SearchSash(CurrSplit))
_ = EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = DataAction.ResetHwOpt });
- }
_ = EC_UpdateSplit.InvokeAsync(args);
}
}
@@ -168,6 +174,28 @@ namespace WebWindowComplex.Compo
}
}
+ ///
+ /// Aggiornamento element
+ ///
+ ///
+ ///
+ private async Task UpdateElement(ElementDimension updRec)
+ {
+ // cerco il record
+ var currRec = CurrSplit.ElemDimHorizList.FirstOrDefault(x => x.ParentArea == updRec.ParentArea && x.nIndex == updRec.nIndex);
+ // lo aggiorno
+ if (updRec != null)
+ {
+ currRec = updRec;
+ var args = new DataUpdateSplit()
+ {
+ currSplit = CurrSplit,
+ svgNoHw = true
+ };
+ await EC_UpdateSplit.InvokeAsync(args);
+ }
+ }
+
///
/// Metodo per aggiornare la dimensione dello split
///
@@ -188,9 +216,10 @@ namespace WebWindowComplex.Compo
currRec = currSplitDim;
var args = new DataUpdateSplit()
{
- currSplit = CurrSplit
+ currSplit = CurrSplit,
+ noSvg = updRec.noSvg
};
- await EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = DataAction.ResetDictShape });
+ //await EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = DataAction.ResetDictShape });
await EC_UpdateSplit.InvokeAsync(args);
}
}
@@ -281,7 +310,8 @@ namespace WebWindowComplex.Compo
}
var args = new DataUpdateSplit()
{
- currSplit = CurrSplit
+ currSplit = CurrSplit,
+ noSvg = true
};
await EC_UpdateSplit.InvokeAsync(args);
}
@@ -294,5 +324,6 @@ namespace WebWindowComplex.Compo
{
public Split currSplit { get; set; } = null!;
public bool svgNoHw { get; set; } = false;
+ public bool noSvg { get; set; } = false;
}
}
\ No newline at end of file
diff --git a/WebWindowComplex/Compo/EditElement.razor b/WebWindowComplex/Compo/EditElement.razor
new file mode 100644
index 0000000..f92285b
--- /dev/null
+++ b/WebWindowComplex/Compo/EditElement.razor
@@ -0,0 +1,12 @@
+@using static WebWindowComplex.LayoutConst
+
+ @(CurrRec.nIndex)
+ @if (User)
+ {
+
+ }
+ else
+ {
+
+ }
+
\ No newline at end of file
diff --git a/WebWindowComplex/Compo/EditElement.razor.cs b/WebWindowComplex/Compo/EditElement.razor.cs
new file mode 100644
index 0000000..55b4bb3
--- /dev/null
+++ b/WebWindowComplex/Compo/EditElement.razor.cs
@@ -0,0 +1,48 @@
+using Microsoft.AspNetCore.Components;
+using WebWindowComplex.Models;
+
+namespace WebWindowComplex.Compo
+{
+ public partial class EditElement
+ {
+ #region Public Properties
+
+ ///
+ /// Joint corrente
+ ///
+ [Parameter]
+ public ElementDimension CurrRec { get; set; } = null!;
+
+
+ [Parameter]
+ public EventCallback
EC_Update { get; set; }
+
+ ///
+ /// Livello di accesso (utente base)
+ ///
+ [CascadingParameter(Name = "User")]
+ public bool User { get; set; } = false!;
+
+ #endregion Public Properties
+
+ #region Private Properties
+
+ ///
+ /// Metodo per aggiornare element corrente
+ ///
+ private double updateVal
+ {
+ get => CurrRec.dDimension;
+ set
+ {
+ if (CurrRec.dDimension != value)
+ {
+ CurrRec.SetDimension(value);
+ _ = EC_Update.InvokeAsync(CurrRec);
+ }
+ }
+ }
+
+ #endregion Private Properties
+ }
+}
\ No newline at end of file
diff --git a/WebWindowComplex/Compo/EditJoint.razor b/WebWindowComplex/Compo/EditJoint.razor
index 18b71de..eee5480 100644
--- a/WebWindowComplex/Compo/EditJoint.razor
+++ b/WebWindowComplex/Compo/EditJoint.razor
@@ -1,23 +1,31 @@
@using static WebWindowComplex.LayoutConst
-
- @if (CurrRec.ParentArea is Frame &&
- (CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.DOUBLEARC ||
- CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.ARC_FULL ||
- CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.THREECENTERARC) &&
- (CurrRec.nIndex == 3 || CurrRec.nIndex == 4))
+ @if (User)
{
-
+ @((PositionJoints)(CurrRec.nIndex - 1))
+
}
else
{
-
+
+ @if (CurrRec.ParentArea is Frame &&
+ (CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.DOUBLEARC ||
+ CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.ARC_FULL ||
+ CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.THREECENTERARC) &&
+ (CurrRec.nIndex == 3 || CurrRec.nIndex == 4))
+ {
+
+ }
+ else
+ {
+
+ }
}
\ No newline at end of file
diff --git a/WebWindowComplex/Compo/EditJoint.razor.cs b/WebWindowComplex/Compo/EditJoint.razor.cs
index f3f02ba..9598932 100644
--- a/WebWindowComplex/Compo/EditJoint.razor.cs
+++ b/WebWindowComplex/Compo/EditJoint.razor.cs
@@ -17,6 +17,12 @@ namespace WebWindowComplex.Compo
[Parameter]
public EventCallback EC_Update { get; set; }
+ ///
+ /// Livello di accesso (utente base)
+ ///
+ [CascadingParameter(Name = "User")]
+ public bool User { get; set; } = false!;
+
#endregion Public Properties
#region Private Properties
diff --git a/WebWindowComplex/Compo/EditOptionCombo.razor b/WebWindowComplex/Compo/EditOptionCombo.razor
index e02c3a3..3436936 100644
--- a/WebWindowComplex/Compo/EditOptionCombo.razor
+++ b/WebWindowComplex/Compo/EditOptionCombo.razor
@@ -1,9 +1,24 @@
-
-
+ else
+ {
+
+ }
+ }
+ else
+ {
+
+
+ }
\ No newline at end of file
diff --git a/WebWindowComplex/Compo/EditOptionCombo.razor.cs b/WebWindowComplex/Compo/EditOptionCombo.razor.cs
index 17e625e..5809b31 100644
--- a/WebWindowComplex/Compo/EditOptionCombo.razor.cs
+++ b/WebWindowComplex/Compo/EditOptionCombo.razor.cs
@@ -13,6 +13,12 @@ namespace WebWindowComplex.Compo
[Parameter]
public AGBOptionCombo CurrOpt { get; set; } = null!;
+ ///
+ /// Livello di accesso (utente base)
+ ///
+ [CascadingParameter(Name = "User")]
+ public bool User { get; set; } = false!;
+
[Parameter]
public EventCallback EC_Update { get; set; }
diff --git a/WebWindowComplex/Compo/EditOptionText.razor b/WebWindowComplex/Compo/EditOptionText.razor
index a655b5f..3dbfb2e 100644
--- a/WebWindowComplex/Compo/EditOptionText.razor
+++ b/WebWindowComplex/Compo/EditOptionText.razor
@@ -1,22 +1,56 @@
-
- @if (CurrOpt.sName.Equals("HMan"))
+ @if (User)
{
-
- }
- else if (CurrOpt.ValueList.Count > 0)
- {
-
+ else
+ {
+
+ }
+ }
+ else
+ {
+ if (CurrValue is String)
+ {
+
+ }
+ else
+ {
+
+ }
+ }
}
else
{
-
+
+ @if (CurrOpt.sName.Equals("HMan"))
+ {
+
+ }
+ else if (CurrOpt.ValueList.Count > 0)
+ {
+
+ }
+ else
+ {
+
+ }
+
}
\ No newline at end of file
diff --git a/WebWindowComplex/Compo/EditOptionText.razor.cs b/WebWindowComplex/Compo/EditOptionText.razor.cs
index dd42442..52cfd38 100644
--- a/WebWindowComplex/Compo/EditOptionText.razor.cs
+++ b/WebWindowComplex/Compo/EditOptionText.razor.cs
@@ -13,6 +13,12 @@ namespace WebWindowComplex.Compo
[Parameter]
public AGBOptionText CurrOpt { get; set; } = null!;
+ ///
+ /// Livello di accesso (utente base)
+ ///
+ [CascadingParameter(Name = "User")]
+ public bool User { get; set; } = false!;
+
[Parameter]
public EventCallback EC_Update { get; set; }
diff --git a/WebWindowComplex/Compo/EditSplitDimensions.razor.cs b/WebWindowComplex/Compo/EditSplitDimensions.razor.cs
index 8083619..9948f6a 100644
--- a/WebWindowComplex/Compo/EditSplitDimensions.razor.cs
+++ b/WebWindowComplex/Compo/EditSplitDimensions.razor.cs
@@ -67,7 +67,8 @@ namespace WebWindowComplex.Compo
var args = new DataUpdateSplitDimension()
{
currSplit = CurrRec,
- index=Index
+ index=Index,
+ noSvg = true
};
_ = EC_Update.InvokeAsync(args);
}
@@ -145,5 +146,6 @@ namespace WebWindowComplex.Compo
{
public SplitDimension currSplit { get; set; } = null!;
public int index { get; set; } = -1;
+ public bool noSvg { get; set; } = false;
}
}
\ No newline at end of file
diff --git a/WebWindowComplex/Compo/General.razor b/WebWindowComplex/Compo/General.razor
index 77bcf26..7f9b856 100644
--- a/WebWindowComplex/Compo/General.razor
+++ b/WebWindowComplex/Compo/General.razor
@@ -14,22 +14,38 @@
@@ -41,13 +57,21 @@
-
-
+ @if (User)
+ {
+ Glass
+
+ }
+ else
+ {
+
+
+ }
@@ -65,13 +89,21 @@
- @if(SplittedList != null && SplittedList.Count > 0)
+ @if(!baseUser && SplittedList != null && SplittedList.Count > 0)
{
- Splitted currSplitted = SplittedList.Where(x => x.AreaList.First().Equals(FillList[currFillIndex])).FirstOrDefault();
- @if (currSplitted != null) {
+ Splitted currSplitted = SplittedList.Where(x => x.AreaList.First().Equals(FillList[currFillIndex])).FirstOrDefault()?? new Splitted(null, null);
+ @if (currSplitted.ParentArea != null && currSplitted.ParentWindow != null){
}
}
- @* @foreach (var currSplitted in m_SplittedList)
- {
- @if (currSplitted.AreaList.First().Equals(FillList[currFillIndex]))
- {
-
- }
- } *@
}
}
else if (currStep == CompileStep.General)
@@ -195,6 +209,7 @@
diff --git a/WebWindowComplex/TableComp.razor.cs b/WebWindowComplex/TableComp.razor.cs
index d2e5839..3122280 100644
--- a/WebWindowComplex/TableComp.razor.cs
+++ b/WebWindowComplex/TableComp.razor.cs
@@ -92,6 +92,12 @@ namespace WebWindowComplex
[Parameter]
public LivePayload LiveData { get; set; } = null!;
+ ///
+ /// Livello di accesso (utente base)
+ ///
+ [Parameter]
+ public bool baseUser { get; set; } = false!;
+
#endregion Public Properties
#region Public Methods
@@ -1225,16 +1231,20 @@ namespace WebWindowComplex
{
Split newSplit = args.currSplit;
bool forceSvgNoHw = args.svgNoHw;
+ bool noSvg = args.noSvg;
if (newSplit != null)
{
// cerco il record
var currRec = SearchArea(FrameWindow, newSplit.GroupId, newSplit);
// lo aggiorno
currRec = newSplit;
- if(forceSvgNoHw)
- await DoPreviewSvg(true,true);
- else
- await DoPreviewSvg();
+ if (!noSvg)
+ {
+ if (forceSvgNoHw)
+ await DoPreviewSvg(true, true);
+ else
+ await DoPreviewSvg();
+ }
}
}
@@ -1268,6 +1278,7 @@ namespace WebWindowComplex
{
Sash newSash = args.currSash;
bool svgNoHw = args.svgNoHw;
+ bool noSvg = args.noSvg;
if (svgNoHw)
{
Sash item = (Sash)SearchArea(FrameWindow, newSash.GroupId, newSash);
@@ -1283,11 +1294,26 @@ namespace WebWindowComplex
if (newSash != null && item != null)
{
item = newSash;
- await DoPreviewSvg();
+ if(!noSvg)
+ await DoPreviewSvg();
}
}
}
+ ///
+ /// Calcola bottone per tutti i Fill
+ ///
+ ///
+ private string buttonFillCss(FillTypes reqFillTypes)
+ {
+ foreach (var fill in FillList)
+ {
+ if (!fill.FillType.Equals(reqFillTypes))
+ return "btn btn-outline-secondary btn-sm";
+ }
+ return "btn btn-secondary btn-sm";
+ }
+
#endregion Private Methods
}
}
\ No newline at end of file
diff --git a/WebWindowComplex/WebWindowComplex.csproj b/WebWindowComplex/WebWindowComplex.csproj
index 9ef7e71..1f13b6e 100644
--- a/WebWindowComplex/WebWindowComplex.csproj
+++ b/WebWindowComplex/WebWindowComplex.csproj
@@ -6,7 +6,7 @@
net8.0
enable
enable
- 2.7.12.2316
+ 2.8.1.2209
Annamaria Sassi
Egalware
Componente gestione Configurazioni avanzate Window per LUX
@@ -18,11 +18,11 @@
-
+
-
+
@@ -49,401 +49,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/WebWindowConfigurator/WebWindowConfigurator.csproj b/WebWindowConfigurator/WebWindowConfigurator.csproj
index 1a4ce21..86c538d 100644
--- a/WebWindowConfigurator/WebWindowConfigurator.csproj
+++ b/WebWindowConfigurator/WebWindowConfigurator.csproj
@@ -6,7 +6,7 @@
net8.0
enable
enable
- 2.7.12.2316
+ 2.8.1.2209
Annamaria Sassi
Egalware
Componente gestione JWD per LUX
@@ -26,11 +26,11 @@
-
+
-
+
@@ -56,505 +56,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/WebWindowTest/Compo/AreaFrame.razor b/WebWindowTest/Compo/AreaFrame.razor
deleted file mode 100644
index f7330d5..0000000
--- a/WebWindowTest/Compo/AreaFrame.razor
+++ /dev/null
@@ -1,26 +0,0 @@
-@using WebWindowTest.Models
-
-
-
\ No newline at end of file
diff --git a/WebWindowTest/Compo/AreaFrame.razor.cs b/WebWindowTest/Compo/AreaFrame.razor.cs
deleted file mode 100644
index adb7428..0000000
--- a/WebWindowTest/Compo/AreaFrame.razor.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using Microsoft.AspNetCore.Components;
-using WebWindowTest.Models;
-
-namespace WebWindowTest.Compo
-{
- public partial class AreaFrame
- {
- #region Public Properties
-
- [Parameter]
- public Frame CurrFrameWindow { get; set; } = null!;
-
- [Parameter]
- public List CurrSashList { get; set; } = null!;
-
- [Parameter]
- public List CurrSplitList { get; set; } = null!;
-
- [Parameter]
- public EventCallback EC_AddSash { get; set; }
-
- [Parameter]
- public EventCallback EC_AddSplit { get; set; }
-
- #endregion Public Properties
-
- #region Private Methods
-
- ///
- /// Sollevo evento richiesta aggiunta sash
- ///
- ///
- private async Task RaiseAddSash()
- {
- await EC_AddSash.InvokeAsync(true);
- }
-
- ///
- /// Sollevo evento richiesta aggiunta window
- ///
- ///
- private async Task RaiseAddSplit()
- {
- await EC_AddSplit.InvokeAsync(true);
- }
-
- #endregion Private Methods
- }
-}
\ No newline at end of file
diff --git a/WebWindowTest/Compo/AreaFrameArcElem.razor b/WebWindowTest/Compo/AreaFrameArcElem.razor
new file mode 100644
index 0000000..c167194
--- /dev/null
+++ b/WebWindowTest/Compo/AreaFrameArcElem.razor
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+ IsCheckedQty()">
+
+
+
+
+
+ @* IsCheckCutEdge()"> *@
+
+
+
+
+
+
+
+
+
+ IsCheckedQty()">
+
+
+
+
+
+ @* IsCheckAlign()"> *@
+
+
+
+
+
+
+
+
diff --git a/WebWindowTest/Compo/AreaFrameArcElem.razor.cs b/WebWindowTest/Compo/AreaFrameArcElem.razor.cs
new file mode 100644
index 0000000..22b6c28
--- /dev/null
+++ b/WebWindowTest/Compo/AreaFrameArcElem.razor.cs
@@ -0,0 +1,84 @@
+using Microsoft.AspNetCore.Components;
+using System.Runtime.CompilerServices;
+using WebWindowTest.DTO;
+using WebWindowTest.Models;
+
+namespace WebWindowTest.Compo
+{
+ public partial class AreaFrameArcElem
+ {
+ #region Public Properties
+
+ ///
+ /// Frame corrente
+ ///
+ [Parameter]
+ public Frame CurrFrame { get; set; } = null!;
+
+ [Parameter]
+ public EventCallback EC_UpdatePreview { get; set; }
+
+ #endregion Public Properties
+
+ #region Protected Properties
+
+ //protected int ArcElementQty
+ //{
+ // get => CurrFrame.FrameArcElem.nQty;
+ // set
+ // {
+ // CurrFrame.FrameArcElem.nQty = value;
+ // _ = EC_UpdatePreview.InvokeAsync(CurrFrame);
+ // }
+ //}
+
+ //protected double ArcSection
+ //{
+ // get => CurrFrame.FrameArcElem.nSection;
+ // set
+ // {
+ // CurrFrame.FrameArcElem.nSection = value;
+ // _ = EC_UpdatePreview.InvokeAsync(CurrFrame);
+ // }
+ //}
+
+ #endregion Protected Properties
+
+ #region Protected Methods
+
+ protected void IsCheckedQty()
+ {
+ insertQty = !insertQty;
+ }
+
+ //protected void IsCheckCutEdge()
+ //{
+ // CurrFrame.FrameArcElem.bCutEdge = !CurrFrame.FrameArcElem.bCutEdge;
+ // _ = EC_UpdatePreview.InvokeAsync(CurrFrame);
+ //}
+
+ //protected void IsCheckAlign()
+ //{
+ // CurrFrame.FrameArcElem.bIsAlign = !CurrFrame.FrameArcElem.bIsAlign;
+ // _ = EC_UpdatePreview.InvokeAsync(CurrFrame);
+ //}
+
+ protected string IsUsedQty()
+ {
+ if (insertQty)
+ return "form-control";
+ else
+ return "form-control disabled";
+ }
+
+
+ #endregion Protected Methods
+
+ #region Private Fields
+
+ private bool insertQty = false;
+
+ #endregion Private Fields
+ }
+
+}
\ No newline at end of file
diff --git a/WebWindowTest/Compo/AreaHwOption.razor b/WebWindowTest/Compo/AreaHwOption.razor
index cd5f478..11255c5 100644
--- a/WebWindowTest/Compo/AreaHwOption.razor
+++ b/WebWindowTest/Compo/AreaHwOption.razor
@@ -1,38 +1,54 @@
@using static WebWindowTest.Json.WindowConst
-
+
Hardware option
-
+
- @if (isLoadingHwOpt && CurrSash.HwOptionList.Count == 0)
+ @if (!hwOptCollapsed)
{
-
- }
- @if (!hwOptCollapsed || !isLoadingHwOpt)
- {
- @foreach (var currOpt in CurrSash.HwOptionList)
+ @if (IsLoadingHwOpt)
{
- switch (currOpt.Type)
- {
- case HwOptionTypes.COMBO:
+
+ }
+ else
+ {
+
+ @foreach (var currOpt in CurrSashGroup.HwOptionList)
+ {
+ switch (currOpt.Type)
{
- AGBOptionCombo currOptCombo = (AGBOptionCombo)currOpt;
-
- break;
+ case HwOptionTypes.COMBO:
+ {
+ AGBOptionCombo currOptCombo = (AGBOptionCombo)currOpt;
+
+ break;
+ }
+ case HwOptionTypes.TEXT:
+ {
+ AGBOptionText currOptText = (AGBOptionText)currOpt;
+
+ break;
+ }
}
- case HwOptionTypes.TEXT:
- {
- AGBOptionText currOptText = (AGBOptionText)currOpt;
-
- break;
- }
- }
+ }
+
}
}
-
\ No newline at end of file
diff --git a/WebWindowTest/Compo/AreaHwOption.razor.cs b/WebWindowTest/Compo/AreaHwOption.razor.cs
index d4db986..c8d1c94 100644
--- a/WebWindowTest/Compo/AreaHwOption.razor.cs
+++ b/WebWindowTest/Compo/AreaHwOption.razor.cs
@@ -11,60 +11,45 @@ namespace WebWindowTest.Compo
///
/// 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; }
+ [CascadingParameter(Name = "CurrSashGroup")]
+ public Sash CurrSashGroup { get; set; } = null!;
///
/// Evento per chiamare la prima volta la lista delle opzioni
///
[Parameter]
public EventCallback EC_FirstHwOptionList { get; set; }
-
- private bool isLoadingHwOpt { get; set; }
- private bool hwOptCollapsed { get; set; }
+ [CascadingParameter(Name = "IsLoading")]
+ public List IsLoading { get; set; } = new List();
+
+ private bool hwOptCollapsed { get; set; } = true;
+
+ protected override void OnAfterRender(bool firstRender)
+ {
+ if (firstRender)
+ {
+ hwOptCollapsed = true;
+ }
+ }
private async Task changeCollapsed()
{
hwOptCollapsed = !hwOptCollapsed;
- if(CurrSash.HwOptionList.Count == 0)
+ if (CurrSashGroup.HwOptionList.Count == 0)
{
- isLoadingHwOpt = true;
- await EC_FirstHwOptionList.InvokeAsync(CurrSash.GroupId);
+ await EC_FirstHwOptionList.InvokeAsync();
}
}
- ///
- /// Report aggiornamento Option Combo
- ///
- ///
- ///
- private async Task RaiseOptCombo(AGBOptionCombo updRec)
+ private string hwIcon
{
- await EC_UpdateHwOptCombo.InvokeAsync(updRec);
+ get => hwOptCollapsed ? "fa-solid fa-chevron-down" : "fa-solid fa-chevron-up";
}
- ///
- /// Report aggiornamento Option Text
- ///
- ///
- ///
- private async Task RaiseOptText(AGBOptionText updRec)
+ private bool IsLoadingHwOpt
{
- await EC_UpdateHwOptText.InvokeAsync(updRec);
+ get => IsLoading != null && IsLoading.Count > 0 && IsLoading.Contains("LoadHwOpt");
}
-
}
}
\ No newline at end of file
diff --git a/WebWindowTest/Compo/AreaSash.razor b/WebWindowTest/Compo/AreaSash.razor
index e394f42..d1da9fa 100644
--- a/WebWindowTest/Compo/AreaSash.razor
+++ b/WebWindowTest/Compo/AreaSash.razor
@@ -1,70 +1,114 @@
-@using WebWindowTest.Models
-
-
-
Sash @(CurrSashGroup.SashList.Count == 1 ? "" : (IndexSash + 1))
-
-
-
-
-
-
- Dimension
-
- %
-
-
-
-
RaiseChangeHandle(CurrSashDim, CurrSashGroup)">
+@using EgwCoreLib.Razor
+@if(mode == ModeView.View)
+{
+
+
+
Sash @(CurrSashGroup.SashList.Count == 1 ? "" : (IndexSash + 1))
+
-
-
+
+ Tipology
+
-
- @if (!(CurrAnta.AreaList[0] is Split))
- {
-
-
-
-
-
+
+ Dimension
+
+
+
+
+
+ ChangeHandle()">
-
-
-
-
+
+
- }
-
- @for (int k = 0; k <= CurrSashGroup.SashList.Count - 1; k++)
- {
- @if (k != IndexSash)
- {
- int IndexCopy = k;
- int IndexModify = IndexSash;
-
-
-
+
+}
+else
+{
+
+
Sash @(CurrSashGroup.SashList.Count == 1 ? "" : (IndexSash + 1))
+
+
+
+
+
+ Tipology
+
+
+
+ Dimension
+
+
+
+
+
+ ChangeHandle()">
+
+
+
- }
- }
-
-
+
+
+
+ @foreach (Joint joint in CurrSashDim.JointList)
+ {
+
+ }
+
+
+}
diff --git a/WebWindowTest/Compo/AreaSash.razor.cs b/WebWindowTest/Compo/AreaSash.razor.cs
index 09c7e32..2f6e6a8 100644
--- a/WebWindowTest/Compo/AreaSash.razor.cs
+++ b/WebWindowTest/Compo/AreaSash.razor.cs
@@ -1,5 +1,9 @@
+using EgwCoreLib.Razor;
using Microsoft.AspNetCore.Components;
+using Newtonsoft.Json.Linq;
+using System;
using WebWindowTest.Models;
+using static WebWindowTest.Json.WindowConst;
namespace WebWindowTest.Compo
{
@@ -8,7 +12,7 @@ namespace WebWindowTest.Compo
///
/// Sash group corrente
///
- [Parameter]
+ [CascadingParameter(Name = "CurrSashGroup")]
public Sash CurrSashGroup { get; set; } = null!;
///
@@ -17,6 +21,18 @@ namespace WebWindowTest.Compo
[Parameter]
public SashDimension CurrSashDim { get; set; } = null!;
+ ///
+ /// Lista delle sash
+ ///
+ [CascadingParameter(Name = "SashList")]
+ public List SashList { get; set; } = null!;
+
+ ///
+ /// Modalità di visualizzazione (view /edit)
+ ///
+ [Parameter]
+ public bool EditMode { get; set; } = false;
+
///
/// Indice della sash corrente
///
@@ -24,26 +40,33 @@ namespace WebWindowTest.Compo
public int IndexSash { get; set; } = 0;
///
- /// Evento per cambiare l'anta su cui presente la maniglia
+ /// Evento per aggiornare sash dimension
///
[Parameter]
- public EventCallback EC_ChangeHandle { get; set; }
+ public EventCallback EC_UpdateSashDim { get; set; }
+
///
- /// Evento per cambiare l'anta su cui presente la maniglia
+ /// Evento per aggiornare sash
///
[Parameter]
- public EventCallback EC_CopyContentSash { get; set; }
+ public EventCallback EC_UpdateSash { get; set; }
+
+ ///
+ /// Evento per cambiare modalità di visualizzazione
+ ///
+ [Parameter]
+ public EventCallback EC_EditView { get; set; }
///
/// Anta corrente
///
- public Area CurrAnta
- {
+ public Area CurrAnta
+ {
get
{
- if(CurrSashGroup.AreaList[IndexSash] is Splitted)
-{
+ if (CurrSashGroup.AreaList[IndexSash] is Splitted)
+ {
return CurrSashGroup.AreaList[IndexSash];
}
else
@@ -58,49 +81,196 @@ namespace WebWindowTest.Compo
}
///
- /// Sollevo evento per cambiare l'anta su cui presente la maniglia
+ /// Metodo per avere il numero di decimali da usare nella form-input
///
///
- private async Task RaiseChangeHandle(SashDimension sashDim, Sash currSash)
+ public int CssDecimals()
{
- var Args = new DataChangeHandle
+ switch (CurrSashDim.MeasureType)
{
- currSashDimension = sashDim,
- currItem = currSash,
- };
- await EC_ChangeHandle.InvokeAsync(Args);
+ case Json.WindowConst.MeasureTypes.ABSOLUTE:
+ {
+ return 2;
+ }
+ case Json.WindowConst.MeasureTypes.PROPORTIONAL:
+ {
+ return 0;
+ }
+ case Json.WindowConst.MeasureTypes.PERCENTAGE:
+ {
+ return 1;
+ }
+ }
+ return 0;
}
///
- /// Sollevo evento per cambiare l'anta su cui presente la maniglia
+ /// Metodo per avere il lo step da usare nella form-input
///
///
- private async Task RaiseCopyContentSash(Sash currSash, int indexC, int indexM)
+ public double CssStepNumber()
{
- var Args = new DataCopyContentSash
+ switch (CurrSashDim.MeasureType)
{
- currItem = currSash,
- indexCopy = indexC,
- indexModify = indexM,
+ case Json.WindowConst.MeasureTypes.ABSOLUTE:
+ {
+ return 0.5;
+ }
+ case Json.WindowConst.MeasureTypes.PROPORTIONAL:
+ {
+ return 1;
+ }
+ case Json.WindowConst.MeasureTypes.PERCENTAGE:
+ {
+ return 0.5;
+ }
+ }
+ return 0;
+ }
+
+ ///
+ /// Selezione tipo di apertura anta
+ ///
+ protected int OpeningTypeIndex
+ {
+ get => CurrSashDim.SelOpeningTypeIndex;
+ set
+ {
+ if (CurrSashDim.SelOpeningTypeIndex != value)
+ {
+ CurrSashDim.SelOpeningTypeIndex = value;
+ _ = EC_UpdateSashDim.InvokeAsync(CurrSashDim);
+ }
+ }
+ }
+
+ ///
+ /// Selezione tipo di misura della dimensione dell'anta
+ ///
+ protected int MeasureTypeIndex
+ {
+ get => CurrSashDim.SelMeasureTypeIndex;
+ set
+ {
+ if (CurrSashDim.SelMeasureTypeIndex != value)
+ {
+ CurrSashDim.SelMeasureTypeIndex = value;
+ _ = EC_UpdateSashDim.InvokeAsync(CurrSashDim);
+ }
+ }
+ }
+
+ ///
+ /// Inserimento dimensione anta
+ ///
+ protected double Dimension
+ {
+ get => CurrSashDim.dDimension;
+ set
+ {
+ if (CurrSashDim.dDimension != value)
+ {
+ CurrSashDim.dDimension = (double)Math.Round((decimal)value, CssDecimals());
+ _ = EC_UpdateSashDim.InvokeAsync(CurrSashDim);
+ }
+ }
+ }
+
+ ///
+ /// Metodo per cambiare l'anta su cui è presente la maniglia
+ ///
+ ///
+ private async Task ChangeHandle()
+ {
+ // Cerco la Sash che si sta considerando nella lista Sash
+ var s = SashList.Where(x => x.GroupId == CurrSashGroup.GroupId).FirstOrDefault();
+ if (s != null)
+ {
+ // Setto la presenza o meno della maniglia per ogni anta
+ foreach (SashDimension item in s.SashList)
+ {
+ if (item.Equals(CurrSashDim))
+ {
+ item.bHasHandle = true;
+ }
+ else
+ {
+ if (item.bHasHandle)
+ {
+ switch (item.SelOpeningType)
+ {
+ case Openings.TILTTURN_LEFT:
+ {
+ item.SetOpeningType(Openings.TURNONLY_LEFT);
+ break;
+ }
+ case Openings.TILTTURN_RIGHT:
+ {
+ item.SetOpeningType(Openings.TURNONLY_RIGHT);
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+ }
+ item.bHasHandle = false;
+ }
+ }
+ }
+ CurrSashGroup.RefreshHardwareList();
+ CurrSashGroup.SetFirstHardware();
+ await EC_UpdateSash.InvokeAsync(CurrSashGroup);
+ }
+
+ private bool isOpen = false;
+
+ private void ToggleDropdown()
+ {
+ isOpen = !isOpen;
+ }
+
+ private enum ModeView
+ {
+ NULL = 0,
+ View = 1,
+ Edit = 2
+ }
+ protected override void OnParametersSet()
+ {
+ if (EditMode)
+ mode = ModeView.Edit;
+ else
+ mode = ModeView.View;
+ }
+ private ModeView mode { get; set; } = ModeView.View;
+ private void doEdit(int index)
+ {
+ var args = new DataChangeMode
+ {
+ Edit = true,
+ IndexSashEdit = index,
+ IndexSashClose = -1
};
- await EC_CopyContentSash.InvokeAsync(Args);
+ _ = EC_EditView.InvokeAsync(args);
+ }
+ protected void ClosePopup(int index)
+ {
+ var args = new DataChangeMode
+ {
+ Edit = false,
+ IndexSashEdit = -1,
+ IndexSashClose = index
+ };
+ _ = EC_EditView.InvokeAsync(args);
}
}
- public class DataChangeHandle
- {
- public SashDimension currSashDimension { get; set; } = null!;
- public Sash currItem { get; set; } = null!;
-
+ public class DataChangeMode {
+ public bool Edit { get; set; }
+ public int IndexSashEdit { get; set; }
+ public int IndexSashClose { get; set; }
}
- public class DataCopyContentSash
- {
- public Sash currItem { get; set; } = null!;
-
- public int indexCopy { get; set; } = 0;
-
- public int indexModify { get; set; } = 0;
-
- }
}
\ No newline at end of file
diff --git a/WebWindowTest/Compo/AreaSashArcElem.razor b/WebWindowTest/Compo/AreaSashArcElem.razor
new file mode 100644
index 0000000..4c0f3ae
--- /dev/null
+++ b/WebWindowTest/Compo/AreaSashArcElem.razor
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+ IsCheckedQty()">
+
+
+
+
+
+ @* IsCheckCutEdge()"> *@
+
+
+
+
+
+
+
+
+
+ IsCheckedQty()">
+
+
+
+
+
+
diff --git a/WebWindowTest/Compo/AreaSashArcElem.razor.cs b/WebWindowTest/Compo/AreaSashArcElem.razor.cs
new file mode 100644
index 0000000..9999b2b
--- /dev/null
+++ b/WebWindowTest/Compo/AreaSashArcElem.razor.cs
@@ -0,0 +1,78 @@
+using Microsoft.AspNetCore.Components;
+using System.Runtime.CompilerServices;
+using WebWindowTest.DTO;
+using WebWindowTest.Models;
+
+namespace WebWindowTest.Compo
+{
+ public partial class AreaSashArcElem
+ {
+ #region Public Properties
+
+ ///
+ /// Sash corrente
+ ///
+ [Parameter]
+ public Sash CurrSashGroup { get; set; } = null!;
+
+ [Parameter]
+ public EventCallback EC_UpdatePreview { get; set; }
+
+ #endregion Public Properties
+
+ #region Protected Properties
+
+ //protected int ArcElementQty
+ //{
+ // get => CurrSashGroup.SashArcElem.nQty;
+ // set
+ // {
+ // CurrSashGroup.SashArcElem.nQty = value;
+ // _ = EC_UpdatePreview.InvokeAsync(CurrSashGroup);
+ // }
+ //}
+
+ //protected double ArcSection
+ //{
+ // get => CurrSashGroup.SashArcElem.nSection;
+ // set
+ // {
+ // CurrSashGroup.SashArcElem.nSection = value;
+ // _ = EC_UpdatePreview.InvokeAsync(CurrSashGroup);
+ // }
+ //}
+
+ #endregion Protected Properties
+
+ #region Protected Methods
+
+ protected void IsCheckedQty()
+ {
+ insertQty = !insertQty;
+ }
+
+ //protected void IsCheckCutEdge()
+ //{
+ // CurrSashGroup.SashArcElem.bCutEdge = !CurrSashGroup.SashArcElem.bCutEdge;
+ // _ = EC_UpdatePreview.InvokeAsync(CurrSashGroup);
+ //}
+
+ protected string IsUsedQty()
+ {
+ if (insertQty)
+ return "form-control";
+ else
+ return "form-control disabled";
+ }
+
+
+ #endregion Protected Methods
+
+ #region Private Fields
+
+ private bool insertQty = false;
+
+ #endregion Private Fields
+ }
+
+}
\ No newline at end of file
diff --git a/WebWindowTest/Compo/AreaSplit.razor b/WebWindowTest/Compo/AreaSplit.razor
index 4b2664d..96087ee 100644
--- a/WebWindowTest/Compo/AreaSplit.razor
+++ b/WebWindowTest/Compo/AreaSplit.razor
@@ -1,20 +1,20 @@
-
-
Area split @(CurrSplittedList.Count > 1 ? (CurrSplittedList.IndexOf(CurrSplitted) + 1) : "")
+
+
Area split @(SplittedList.Count > 1 ? (SplittedList.IndexOf(CurrSplitted) + 1) : "")
-
+
- @for (int j = 0; j < CurrSashList.Count; j++)
+ @for (int j = 0; j < SashList.Count; j++)
{
int Index = j;
-
+
}
diff --git a/WebWindowTest/Compo/AreaSplit.razor.cs b/WebWindowTest/Compo/AreaSplit.razor.cs
index 3e1fa53..66d3d28 100644
--- a/WebWindowTest/Compo/AreaSplit.razor.cs
+++ b/WebWindowTest/Compo/AreaSplit.razor.cs
@@ -12,80 +12,56 @@ namespace WebWindowTest.Compo
/// Lista delle sash
///
[Parameter]
- public List
CurrSashList { get; set; } = null;
+ public List SashList { get; set; } = null!;
///
/// Oggetto splitted corrente
///
[Parameter]
- public Splitted CurrSplitted { get; set; } = null;
+ public Splitted CurrSplitted { get; set; } = null!;
///
/// Lista degli Splitted
///
[Parameter]
- public List CurrSplittedList { get; set; } = null;
-
- ///
- /// Evento per copiare Sash
- ///
- [Parameter]
- public EventCallback EC_CopySash { get; set; }
+ public List SplittedList { get; set; } = null!;
///
/// Evento per aggiungere Sash
///
[Parameter]
- public EventCallback EC_AddSash { get; set; }
+ public EventCallback EC_UpdateSplitted { get; set; }
#endregion Public Properties
#region Private Methods
///
- /// Sollevo evento richiesta copia sash
+ /// Metodo per copiare sash
///
///
- private async Task RaiseCopySash(Splitted item, int indexCurrSash)
+ private async Task RaiseCopySash(int indexCurrSash)
{
- var Args = new DataAreaSplit
- {
- splitted = item,
- index = indexCurrSash,
- };
- await EC_CopySash.InvokeAsync(Args);
+ //Rimuovo contenuto di Splitted e rimuovo area da conteggio gruppi
+ CurrSplitted.AreaList.RemoveAll(i => i != null);
+ // Copio sash
+ Area a = SashList[indexCurrSash].Copy(CurrSplitted);
+ a.SetParentArea(CurrSplitted);
+ // Aggiungo copia a Splitted
+ CurrSplitted.AreaList.Add(a);
+ await EC_UpdateSplitted.InvokeAsync(CurrSplitted);
}
///
- /// Sollevo evento richiesta copia sash
+ /// Metodo per aggiungere prima sash
///
///
- private async Task RaiseAddSash(Splitted item)
+ private async Task RaiseAddSash()
{
- var Args = new DataAreaSplitted
- {
- splitted = item
- };
- await EC_AddSash.InvokeAsync(Args);
+ CurrSplitted.AddFirstSash();
+ await EC_UpdateSplitted.InvokeAsync(CurrSplitted);
}
+
#endregion Private Methods
-
- }
-
- ///
- /// Classe per raggruppare oggetti che servono per copiare Sash
- ///
- public class DataAreaSplit
- {
- public Splitted splitted { get; set; }
- public int index { get; set; }
- }
-
- ///
- /// Classe per raggruppare oggetti che servono per aggiungere Sash
- ///
- public class DataAreaSplitted
- {
- public Splitted splitted { get; set; }
}
}
\ No newline at end of file
diff --git a/WebWindowTest/Compo/CardArcElement.razor b/WebWindowTest/Compo/CardArcElement.razor
new file mode 100644
index 0000000..e29174e
--- /dev/null
+++ b/WebWindowTest/Compo/CardArcElement.razor
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+ @foreach (var sashGroup in SashList)
+ {
+
+
+
+ }
+
+
+
\ No newline at end of file
diff --git a/WebWindowTest/Compo/CardArcElement.razor.cs b/WebWindowTest/Compo/CardArcElement.razor.cs
new file mode 100644
index 0000000..0e7210c
--- /dev/null
+++ b/WebWindowTest/Compo/CardArcElement.razor.cs
@@ -0,0 +1,60 @@
+using Microsoft.AspNetCore.Components;
+using WebWindowTest.DTO;
+using WebWindowTest.Models;
+
+namespace WebWindowTest.Compo
+{
+ public partial class CardArcElement
+ {
+ #region Public Properties
+
+ ///
+ /// Frame corrente
+ ///
+ [Parameter]
+ public Frame CurrFrame { get; set; } = null!;
+
+ ///
+ /// Lista sash group
+ ///
+ [Parameter]
+ public List SashList { get; set; } = null!;
+
+ [Parameter]
+ public EventCallback EC_UpdatePreview { get; set; }
+
+ [Parameter]
+ public EventCallback EC_ReqClose { get; set; }
+
+ #endregion Public Properties
+
+ private async Task UpdatePreview()
+ {
+ var args = new DataUpdateFrame
+ {
+ currFrame = CurrFrame
+ };
+ await EC_UpdatePreview.InvokeAsync(args);
+ }
+
+ private async Task UpdatePreviewSash(Sash CurrSashGRoup)
+ {
+ var currRec = SashList.First(x => x.GroupId == CurrSashGRoup.GroupId);
+ if (currRec != null)
+ {
+ currRec = CurrSashGRoup;
+ var args = new DataUpdateFrame
+ {
+ currFrame = CurrFrame
+ };
+ await EC_UpdatePreview.InvokeAsync(args);
+ }
+ }
+
+ private void ReqClose()
+ {
+ _ = EC_ReqClose.InvokeAsync(true);
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/WebWindowTest/Compo/CardFill.razor b/WebWindowTest/Compo/CardFill.razor
index 55c5fd6..27bfaec 100644
--- a/WebWindowTest/Compo/CardFill.razor
+++ b/WebWindowTest/Compo/CardFill.razor
@@ -1,7 +1,7 @@