diff --git a/Test.UI/Test.UI/Components/Pages/Home.razor b/Test.UI/Test.UI/Components/Pages/Home.razor
index f865e12..79de3f7 100644
--- a/Test.UI/Test.UI/Components/Pages/Home.razor
+++ b/Test.UI/Test.UI/Components/Pages/Home.razor
@@ -10,7 +10,7 @@ Welcome to your new app.
-@currJwd
+
@JsonSer
@code {
protected string currJwd = "...";
@@ -19,4 +19,10 @@ Welcome to your new app.
{
currJwd = newSerial;
}
+
+
+ protected MarkupString JsonSer
+ {
+ get => (MarkupString)currJwd.Replace(Environment.NewLine, "
").Replace(" ", " ");
+ }
}
\ No newline at end of file
diff --git a/WebWindowConfigurator/Json/WindowConst.cs b/WebWindowConfigurator/Json/WindowConst.cs
index b4962fd..dcffc15 100644
--- a/WebWindowConfigurator/Json/WindowConst.cs
+++ b/WebWindowConfigurator/Json/WindowConst.cs
@@ -122,6 +122,17 @@ namespace WebWindowConfigurator.Json
EXT_DIMENSION = 2049
}
+ //LUA
+ public enum LuaShapes {
+ RECT = 1,
+ CHAMFER_SIDE = 2,
+ CHAMFER = 3,
+ ROUND_ARC = 4,
+ SEGMENTAL_ARC = 5,
+ POINTED_ARC = 6,
+ TRIANGLE = 7
+ }
+
public struct Point3d
{
public double x;
diff --git a/WebWindowConfigurator/WebWindowMaker.razor b/WebWindowConfigurator/WebWindowMaker.razor
index aad5090..29bbfa5 100644
--- a/WebWindowConfigurator/WebWindowMaker.razor
+++ b/WebWindowConfigurator/WebWindowMaker.razor
@@ -6,14 +6,18 @@
questo ci serve come segnaposto x generare il componente di disegno delle finestre
-
- Altezza
-
- mm
-
-
*@
diff --git a/WebWindowConfigurator/WebWindowMaker.razor.cs b/WebWindowConfigurator/WebWindowMaker.razor.cs
index 84c9dcb..a2b3930 100644
--- a/WebWindowConfigurator/WebWindowMaker.razor.cs
+++ b/WebWindowConfigurator/WebWindowMaker.razor.cs
@@ -30,28 +30,35 @@ namespace WebWindowConfigurator
protected async Task DoSave()
{
- var CurrentWindow = new JsonWindow("Profilo68");
- var Frame = new JsonFrame(CurrWindow.Forma, false, 0);
- Frame.DimensionList.Add(new JsonFrameDimension(1, "Larghezza", CurrWindow.Larghezza));
- Frame.DimensionList.Add(new JsonFrameDimension(1, "Altezza", CurrWindow.Altezza));
- Frame.AreaList.Add(new JsonSash(true, WindowConst.SashTypes.ACTIVE, ""));
- CurrentWindow.AreaList.Add(Frame);
+ //var CurrentWindow = new JsonWindow("Profilo68");
+ //var Frame = new JsonFrame(CurrWindow., false, 0);
+ //Frame.DimensionList.Add(new JsonFrameDimension(1, "Larghezza", CurrWindow.Height));
+ //Frame.DimensionList.Add(new JsonFrameDimension(1, "Altezza", CurrWindow.Width));
+ //Frame.AreaList.Add(new JsonSash(true, WindowConst.SashTypes.ACTIVE, ""));
+ //CurrentWindow.AreaList.Add(Frame);
//CurrJwd = @"prova";
- CurrJwd = JsonConvert.SerializeObject(CurrentWindow, Formatting.Indented);
+ CurrJwd = JsonConvert.SerializeObject(m_CurrWindow.Serialize(), Formatting.Indented);
await EC_Update.InvokeAsync(CurrJwd);
}
- public class WindowDto
+ protected override void OnInitialized()
{
- public double Altezza { get; set; } = 1200;
- public double Larghezza { get; set; } = 800;
-
- public WindowConst.Shapes Forma { get; set; } = WindowConst.Shapes.RECTANGLE;
+ //base.OnInitialized();
+ m_CurrWindow = new Window();
+ Frame NewFrame = (Frame)Frame.CreateFrame(m_CurrWindow);
+ m_CurrWindow.AreaList.Add(NewFrame);
+ m_SelArea = NewFrame;
}
- protected WindowDto CurrWindow { get; set; } = new WindowDto();
+ private Window m_CurrWindow { get; set; } = new Window();
+ public Area m_SelArea { get; set; } = null!;
+
+ protected Frame m_frame
+ {
+ get => (Frame)m_SelArea;
+ }
#endregion Protected Methods
}
diff --git a/WebWindowConfigurator/Window.cs b/WebWindowConfigurator/Window.cs
new file mode 100644
index 0000000..3afa82b
--- /dev/null
+++ b/WebWindowConfigurator/Window.cs
@@ -0,0 +1,1805 @@
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Runtime.Intrinsics.Arm;
+using System.Xml.Serialization;
+using WebWindowConfigurator.Json;
+using static WebWindowConfigurator.Json.WindowConst;
+
+namespace WebWindowConfigurator
+{
+ public class FrameDimension
+ {
+ private bool m_bIsLen = false;
+
+ private int m_nIndex;
+ public int nIndex
+ {
+ get
+ {
+ return m_nIndex;
+ }
+ }
+
+ private string m_sName;
+ public string sName
+ {
+ get
+ {
+ return m_sName;
+ }
+ }
+
+ private double m_dValue;
+ public double dValue
+ {
+ get
+ {
+ return m_dValue;
+ }
+ set
+ {
+ m_dValue = value;
+ }
+ }
+
+ public FrameDimension(int nIndex, string sName, double dValue, bool bIsLen)
+ {
+ m_nIndex = nIndex;
+ m_sName = sName;
+ m_dValue = dValue;
+ m_bIsLen = bIsLen;
+ }
+
+ internal JsonFrameDimension Serialize()
+ {
+ JsonFrameDimension JsonFrameDimension = new JsonFrameDimension(m_nIndex, m_sName, m_dValue);
+ return JsonFrameDimension;
+ }
+ }
+
+ public class Window
+ {
+ private String m_sProfilePath;
+ public string sProfilePath
+ {
+ get
+ {
+ return m_sProfilePath;
+ }
+ set
+ {
+ m_sProfilePath = value;
+ }
+ }
+
+ private ObservableCollection m_AreaList = new ObservableCollection();
+ public ObservableCollection AreaList
+ {
+ get
+ {
+ return m_AreaList;
+ }
+ set
+ {
+ m_AreaList = value;
+ }
+ }
+
+ internal JsonWindow Serialize()
+ {
+ JsonWindow JsonWindow = new JsonWindow(sProfilePath);
+ foreach (var Area in AreaList)
+ JsonWindow.AreaList.Add(Area.Serialize());
+ return JsonWindow;
+ }
+ }
+
+ public abstract class Area
+ {
+ protected int m_nAreaId = -1;
+ public int nAreaId
+ {
+ get
+ {
+ return m_nAreaId;
+ }
+ set
+ {
+ m_nAreaId = value;
+ }
+ }
+
+ private List m_AreaList = new List();
+ public List AreaList
+ {
+ get
+ {
+ return m_AreaList;
+ }
+ set
+ {
+ m_AreaList = value;
+ }
+ }
+
+ private AreaTypes m_AreaType;
+ public AreaTypes AreaType
+ {
+ get
+ {
+ return m_AreaType;
+ }
+ set
+ {
+ m_AreaType = value;
+ //m_delDrawWindow();
+ }
+ }
+ internal void SetAreaType(AreaTypes AreaType)
+ {
+ m_AreaType = AreaType;
+ }
+
+ private Area m_ParentArea;
+ public Area ParentArea
+ {
+ get
+ {
+ return m_ParentArea;
+ }
+ }
+ internal void SetParentArea(Area ParentArea)
+ {
+ m_ParentArea = ParentArea;
+ }
+
+ public Area(Area ParentArea)
+ {
+ m_ParentArea = ParentArea;
+ }
+
+ internal abstract JsonArea Serialize();
+ }
+
+ public class Frame : Area
+ {
+ private ObservableCollection m_ShapeList = new ObservableCollection
+ {
+ new IdNameStruct((int)Shapes.RECTANGLE, "Rectangle"),
+ new IdNameStruct((int)Shapes.RIGHTCHAMFER, "Right Chamfer"),
+ new IdNameStruct((int)Shapes.LEFTCHAMFER, "Left Chamfer"),
+ new IdNameStruct((int)Shapes.DOUBLECHAMFER, "Double Chamfer"),
+ new IdNameStruct((int)Shapes.ARC, "Arc"),
+ new IdNameStruct((int)Shapes.ARC_FULL, "Arc Full"),
+ new IdNameStruct((int)Shapes.DOUBLEARC, "Double Arc"),
+ new IdNameStruct((int)Shapes.TRIANGLE, "Triangle")
+ };
+ public ObservableCollection ShapeList
+ {
+ get
+ {
+ return m_ShapeList;
+ }
+ }
+
+ private Shapes m_Shape;
+ public Shapes Shape
+ {
+ get
+ {
+ return m_Shape;
+ }
+ }
+
+ internal void SetSelShape(Shapes Value)
+ {
+ DimensionList.Clear();
+ // aggiungo Dimension
+ switch (Value)
+ {
+ case Shapes.RECTANGLE:
+ case Shapes.ARC_FULL:
+ {
+ DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
+ DimensionList.Add(new FrameDimension(2, "Height", 1800, true));
+ break;
+ }
+
+ case Shapes.RIGHTCHAMFER:
+ {
+ DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
+ DimensionList.Add(new FrameDimension(2, "Left Height", 1800, true));
+ DimensionList.Add(new FrameDimension(3, "Right Height", 1500, true));
+ break;
+ }
+
+ case Shapes.LEFTCHAMFER:
+ {
+ DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
+ DimensionList.Add(new FrameDimension(2, "Left Height", 1500, true));
+ DimensionList.Add(new FrameDimension(3, "Right Height", 1800, true));
+ break;
+ }
+
+ case Shapes.DOUBLECHAMFER:
+ case Shapes.ARC:
+ {
+ DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
+ DimensionList.Add(new FrameDimension(2, "Height", 1500, true));
+ DimensionList.Add(new FrameDimension(3, "Full Height", 1800, true));
+ break;
+ }
+
+ case Shapes.DOUBLEARC:
+ {
+ DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
+ DimensionList.Add(new FrameDimension(2, "Height", 1500, true));
+ DimensionList.Add(new FrameDimension(3, "Full Height", 2400, true));
+ break;
+ }
+
+ case Shapes.TRIANGLE:
+ {
+ DimensionList.Add(new FrameDimension(1, "Width", 2000, true));
+ DimensionList.Add(new FrameDimension(2, "Height", 1500, true));
+ DimensionList.Add(new FrameDimension(3, "Height projection", 0, true));
+ break;
+ }
+
+ case Shapes.CUSTOM:
+ {
+ DimensionList.Clear();
+ break;
+ }
+ }
+ // aggiungo Joint
+ int nJointQty = 4;
+ switch (Value)
+ {
+ case Shapes.RECTANGLE:
+ case Shapes.RIGHTCHAMFER:
+ case Shapes.LEFTCHAMFER:
+ case Shapes.DOUBLECHAMFER:
+ case Shapes.ARC:
+ case Shapes.DOUBLEARC:
+ {
+ JointList.Add(new Joint(1, Joints.FULL_H));
+ JointList.Add(new Joint(2, Joints.FULL_H));
+ JointList.Add(new Joint(3, Joints.FULL_H));
+ JointList.Add(new Joint(4, Joints.FULL_H));
+ break;
+ }
+
+ case Shapes.ARC_FULL:
+ {
+ JointList.Add(new Joint(1, Joints.FULL_H));
+ JointList.Add(new Joint(2, Joints.FULL_H));
+ JointList.Add(new Joint(3, Joints.ANGLED));
+ JointList.Add(new Joint(4, Joints.ANGLED));
+ break;
+ }
+
+ case Shapes.TRIANGLE:
+ {
+ JointList.Add(new Joint(1, Joints.FULL_H));
+ JointList.Add(new Joint(2, Joints.FULL_H));
+ JointList.Add(new Joint(3, Joints.ANGLED));
+ break;
+ }
+
+ case Shapes.CUSTOM:
+ {
+ JointList.Clear();
+ break;
+ }
+ }
+ m_Shape = Value;
+ }
+
+ private ObservableCollection m_DimensionList = new ObservableCollection();
+ public ObservableCollection DimensionList
+ {
+ get
+ {
+ return m_DimensionList;
+ }
+ }
+
+ private ObservableCollection m_JointList = new ObservableCollection();
+ public ObservableCollection JointList
+ {
+ get
+ {
+ return m_JointList;
+ }
+ set
+ {
+ m_JointList = value;
+ }
+ }
+
+ private bool m_bBottomRail;
+ public bool BottomRail
+ {
+ get
+ {
+ return m_bBottomRail;
+ }
+ set
+ {
+ m_bBottomRail = value;
+ }
+ }
+ internal void SetBottomRail(bool bBottomRail)
+ {
+ m_bBottomRail = bBottomRail;
+ }
+
+ private int m_nBottomRailQty = 0;
+ public int BottomRailQty
+ {
+ get
+ {
+ return m_nBottomRailQty;
+ }
+ set
+ {
+ m_nBottomRailQty = value;
+ }
+ }
+ internal void SetBottomRailQty(int nBottomRailQty)
+ {
+ m_nBottomRailQty = nBottomRailQty;
+ }
+
+ private ObservableCollection m_Outline;
+ public ObservableCollection Outline
+ {
+ get
+ {
+ return m_Outline;
+ }
+ set
+ {
+ m_Outline = value;
+ }
+ }
+
+ public Frame(Area ParentArea) : base(ParentArea)
+ {
+ }
+
+ internal static Area CreateFrame(Window Window)
+ {
+ Frame NewFrame = new Frame(null/* TODO Change to default(_) if this is not a reference type */);
+ NewFrame.SetAreaType(AreaTypes.FRAME);
+ NewFrame.SetSelShape(Shapes.RECTANGLE);
+ NewFrame.SetBottomRail(false);
+ NewFrame.SetBottomRailQty(0);
+ return NewFrame;
+ }
+
+ private LuaShapes ConvertShape(Shapes value)
+ {
+ switch (value)
+ {
+ case Shapes.RECTANGLE:
+ {
+ return LuaShapes.RECT;
+ }
+
+ case Shapes.RIGHTCHAMFER:
+ {
+ return LuaShapes.CHAMFER_SIDE;
+ }
+
+ case Shapes.LEFTCHAMFER:
+ {
+ return LuaShapes.CHAMFER_SIDE;
+ }
+
+ case Shapes.DOUBLECHAMFER:
+ {
+ return LuaShapes.CHAMFER;
+ }
+
+ case Shapes.ARC:
+ {
+ return LuaShapes.SEGMENTAL_ARC;
+ }
+
+ case Shapes.ARC_FULL:
+ {
+ return LuaShapes.ROUND_ARC;
+ }
+
+ case Shapes.DOUBLEARC:
+ {
+ return LuaShapes.POINTED_ARC;
+ }
+
+ case Shapes.TRIANGLE:
+ {
+ return LuaShapes.TRIANGLE;
+ }
+
+ default:
+ {
+ return LuaShapes.RECT;
+ }
+ }
+ }
+
+ internal override JsonArea Serialize()
+ {
+ JsonFrame JsonFrame = new JsonFrame(m_Shape, m_bBottomRail, m_nBottomRailQty);
+ foreach (var Dimension in DimensionList)
+ JsonFrame.DimensionList.Add(Dimension.Serialize());
+ foreach (var Joint in JointList)
+ JsonFrame.JointList.Add(Joint.Serialize());
+ foreach (var Area in AreaList)
+ JsonFrame.AreaList.Add(Area.Serialize());
+ return JsonFrame;
+ }
+}
+
+// class Sash : Area
+// {
+// public int nSashQty
+// {
+// get
+// {
+// return m_SashList.Count > 0 ? m_SashList.Count : 1;
+// }
+// set
+// {
+// if (value > m_SashList.Count)
+// {
+// // recupero larghezza ultimo
+// double dLastDimension = 100;
+// double dNewDimension = 100;
+// if (m_SashList.Count > 0)
+// {
+// dLastDimension = m_SashList(m_SashList.Count - 1).dDimension;
+// dNewDimension = dLastDimension / (value + 1 - nSashQty);
+// m_SashList(m_SashList.Count - 1).SetDimension(dNewDimension);
+// }
+// else
+// dNewDimension = dLastDimension / (value + 1 - nSashQty);
+// // aggiungo area Sash di default
+// for (var SplitIndex = m_SashList.Count; SplitIndex <= value - 1; SplitIndex++)
+// SashList.Add(new SashDimension(dNewDimension, true, this));
+// }
+// else if (value < m_SashList.Count)
+// {
+// double dLastDimension = 0;
+// for (var SplitIndex = m_SashList.Count - 1; SplitIndex >= value; SplitIndex += -1)
+// {
+// dLastDimension += m_SashList(SplitIndex).dDimension;
+// SashList.RemoveAt(SplitIndex);
+// }
+// dLastDimension += m_SashList(SashList.Count - 1).dDimension;
+// ;/* Cannot convert ExpressionStatementSyntax, System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitSimpleArgument(SimpleArgumentSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1069
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.<>c__DisplayClass83_0.b__0(ArgumentSyntax a, Int32 i) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1045
+// at System.Linq.Enumerable.SelectIterator[TSource,TResult](IEnumerable`1 source, Func`3 selector)+MoveNext()
+// at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
+// at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.SeparatedList[TNode](IEnumerable`1 nodes)
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitArgumentList(ArgumentListSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1022
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitInvocationExpression(InvocationExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1422
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitMemberAccessExpression(MemberAccessExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 977
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitInvocationExpression(InvocationExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1431
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.MethodBodyVisitor.VisitExpressionStatement(ExpressionStatementSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/MethodBodyVisitor.cs:line 97
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingMethodBodyVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingMethodBodyVisitor.cs:line 27
+
+//Input:
+// SashList(SashList.Count - 1).SetDimension(dLastDimension)
+
+// */
+// }
+// RefreshHardwareList();
+// RefreshHardwareOptionList();
+// SetFirstHardware();
+// }
+// }
+// internal void SetSashQty(int Qty, bool NotifyProperty = false)
+// {
+// if (Qty > m_SashList.Count)
+// {
+// // recupero larghezza ultimo
+// double dLastDimension = 100;
+// double dNewDimension = 100;
+// if (m_SashList.Count > 0)
+// {
+// dLastDimension = m_SashList(m_SashList.Count - 1).dDimension;
+// dNewDimension = dLastDimension / (Qty + 1 - nSashQty);
+// m_SashList(m_SashList.Count - 1).dDimension = dNewDimension;
+// }
+// else
+// dNewDimension = dLastDimension / (Qty + 1 - nSashQty);
+// // aggiungo area Sash di default
+// for (var SplitIndex = m_SashList.Count; SplitIndex <= Qty - 1; SplitIndex++)
+// SashList.Add(new SashDimension(dNewDimension, true, this));
+// }
+// else if (Qty < m_SashList.Count)
+// {
+// for (var SplitIndex = m_SashList.Count - 1; SplitIndex >= Qty; SplitIndex += -1)
+// SashList.RemoveAt(SplitIndex);
+// }
+// if (NotifyProperty)
+// NotifyPropertyChanged(nameof(nSashQty));
+// }
+
+// private bool m_bIsSashVertical;
+// public bool bIsSashVertical
+// {
+// get
+// {
+// return m_bIsSashVertical;
+// }
+// set
+// {
+// m_bIsSashVertical = value;
+// }
+// }
+// internal void SetIsSashVertical(bool IsSashVertical, bool NotifyProperty = false)
+// {
+// m_bIsSashVertical = IsSashVertical;
+// if (NotifyProperty)
+// NotifyPropertyChanged(nameof(bIsSashVertical));
+// }
+
+// private bool m_bIsMeasureGlass;
+// public bool bIsMeasureGlass
+// {
+// get
+// {
+// return m_bIsMeasureGlass;
+// }
+// set
+// {
+// m_bIsMeasureGlass = value;
+// }
+// }
+// internal void SetIsMeasureGlass(bool IsMeasureGlass, bool NotifyProperty = false)
+// {
+// m_bIsMeasureGlass = IsMeasureGlass;
+// if (NotifyProperty)
+// NotifyPropertyChanged(nameof(bIsMeasureGlass));
+// }
+
+// private ObservableCollection m_SashList = new ObservableCollection();
+// public ObservableCollection SashList
+// {
+// get
+// {
+// return m_SashList;
+// }
+// set
+// {
+// m_SashList = value;
+// }
+// }
+
+// private SashTypes m_SashType;
+// public SashTypes SashType
+// {
+// get
+// {
+// return m_SashType;
+// }
+// set
+// {
+// m_SashType = value;
+// }
+// }
+// internal void SetSashType(SashTypes SashType)
+// {
+// m_SashType = SashType;
+// }
+
+// private ObservableCollection m_JointList = new ObservableCollection();
+// public ObservableCollection JointList
+// {
+// get
+// {
+// return m_JointList;
+// }
+// set
+// {
+// m_JointList = value;
+// }
+// }
+
+// private bool m_bBottomRail;
+// public bool BottomRail
+// {
+// get
+// {
+// return m_bBottomRail;
+// }
+// set
+// {
+// m_bBottomRail = value;
+// }
+// }
+// internal void SetBottomRail(bool bBottomRail)
+// {
+// m_bBottomRail = bBottomRail;
+// }
+
+// private int m_nBottomRailQty = 0;
+// public int BottomRailQty
+// {
+// get
+// {
+// return m_nBottomRailQty;
+// }
+// set
+// {
+// m_nBottomRailQty = value;
+// }
+// }
+// internal void SetBottomRailQty(int nBottomRailQty)
+// {
+// m_nBottomRailQty = nBottomRailQty;
+// }
+
+// private bool m_bIsPercentage = true;
+// public bool bIsPercentage
+// {
+// get
+// {
+// return m_bIsPercentage;
+// }
+// }
+
+// private ObservableCollection m_HardwareList = new ObservableCollection();
+// public ObservableCollection HardwareList
+// {
+// get
+// {
+// return m_HardwareList;
+// }
+// }
+
+// private Hardware m_SelHardware;
+// public Hardware SelHardware
+// {
+// get
+// {
+// return m_SelHardware;
+// }
+// set
+// {
+// m_SelHardware = value;
+// if (!IsNothing(m_SelHardware) && m_SelHardware.sId != "000000")
+// {
+// string sHwdOptPath = "";
+// var gf = EgtLuaCreateGlobTable("WDG");
+// var tft = EgtLuaSetGlobIntVar("WDG.AREAID", m_nAreaId);
+// var tfy = EgtLuaSetGlobStringVar("WDG.HDWFAVOURITE", value.sId);
+// SashDimension HandleSash = m_SashList.FirstOrDefault(x => x.bHasHandle);
+// string sHandle = "Dx";
+// switch (GetOpeningSide(HandleSash.OpeningType))
+// {
+// case object _ when OpeningSides.LEFT:
+// {
+// sHandle = "Sx";
+// break;
+// }
+
+// case object _ when OpeningSides.RIGHT:
+// {
+// sHandle = "Dx";
+// break;
+// }
+// }
+// var tfd = EgtLuaSetGlobStringVar("WDG.HDWHANDLE", sHandle);
+// var tlt = EgtLuaCallFunction("WinCreate_GetHardwareOptionPath");
+// var tltf = EgtLuaGetGlobStringVar("WDG.HWDOPTPATH", sHwdOptPath);
+// if (!string.IsNullOrWhiteSpace(sHwdOptPath))
+// {
+// XmlSerializer serializer = new XmlSerializer(typeof(ParametriOpzioni));
+// ParametriOpzioni HwdOptions = null/* TODO Change to default(_) if this is not a reference type */;
+// string sHdwOptPath = Path.ChangeExtension(sHwdOptPath, ".opt");
+// bool bHdwOptFound = false;
+// for (var WaitIndex = 0; WaitIndex <= 100; WaitIndex++)
+// {
+// if (File.Exists(sHdwOptPath))
+// {
+// bHdwOptFound = true;
+// break;
+// }
+// System.Threading.Thread.Sleep(100);
+// }
+// if (bHdwOptFound)
+// {
+// string sHwdOptText = "";
+// try
+// {
+// sHwdOptText = File.ReadAllText(sHdwOptPath);
+// }
+// catch (Exception ex)
+// {
+// EgtOutLog("Hardware file opt not found or read!");
+// }
+// if (!string.IsNullOrWhiteSpace(sHwdOptText))
+// {
+// using (TextReader reader = new StringReader(sHwdOptText))
+// {
+// HwdOptions = serializer.Deserialize(reader);
+// }
+// if (!IsNothing(HwdOptions))
+// {
+// m_HwdOptionList.Clear();
+// foreach (var HdwOption in HwdOptions.Items)
+// m_HwdOptionList.Add(new AGBOption(HdwOption));
+// NotifyPropertyChanged(nameof(HwdOptionList));
+// }
+// }
+// }
+// var ud = EgtLuaResetGlobVar("WDG");
+// }
+// }
+// }
+// }
+// internal void SetSelHardware(Hardware value)
+// {
+// m_SelHardware = value;
+// NotifyPropertyChanged(nameof(SelHardware));
+// }
+// internal void SetSelHardwareFromId(string sId)
+// {
+// m_SelHardware = m_HardwareList.FirstOrDefault(x => x.sId == sId);
+// if (IsNothing(m_SelHardware))
+// m_SelHardware = m_HardwareList(0);
+// NotifyPropertyChanged(nameof(SelHardware));
+// }
+// internal void SetFirstHardware()
+// {
+// if (m_HardwareList.Count > 0)
+// {
+// m_SelHardware = m_HardwareList(0);
+// NotifyPropertyChanged(nameof(SelHardware));
+// }
+// }
+
+// private ObservableCollection m_HwdOptionList = new ObservableCollection();
+// public ObservableCollection HwdOptionList
+// {
+// get
+// {
+// return m_HwdOptionList;
+// }
+// }
+
+// public Sash(Area ParentArea) : base(ParentArea)
+// {
+// }
+
+// internal static Sash CreateSash(Area Area)
+// {
+// Sash NewSash = new Sash(Area);
+// NewSash.SetAreaType(AreaTypes.SASH);
+// NewSash.SetSashQty(1);
+// NewSash.SetIsSashVertical(true);
+// // recupero numero di lati dell'area contenitore
+// int nOutlineLayerId = EgtGetFirstNameInGroup(Area.nAreaId, WIN_OUTLINE);
+// int nJointQty = EgtGetGroupObjs(nOutlineLayerId);
+// for (var JointIndex = 0; JointIndex <= nJointQty - 1; JointIndex++)
+// NewSash.JointList.Add(new Joint(JointIndex + 1, Joints.FULL_H));
+// NewSash.SetBottomRail(false);
+// NewSash.SetBottomRailQty(0);
+// NewSash.RefreshHardwareList();
+// NewSash.RefreshHardwareOptionList();
+// NewSash.SetFirstHardware();
+// return NewSash;
+// }
+
+// private string FindSashShape()
+// {
+// // Return "R"
+// // se non ancora creato, recupero area precedente
+// int nAreaId = m_nAreaId;
+// if (m_nAreaId == GDB_ID.NULL)
+// nAreaId = ParentArea.nAreaId;
+// int nOutlineLayerId = EgtGetFirstNameInGroup(nAreaId, WIN_OUTLINE);
+// List OutlineIdList = new List();
+// int nOutlineId = EgtGetFirstInGroup(nOutlineLayerId);
+// while (nOutlineId != GDB_ID.NULL)
+// {
+// OutlineIdList.Add(nOutlineId);
+// nOutlineId = EgtGetNext(nOutlineId);
+// }
+// int nTempLayerId = EgtCreateGroup(nAreaId);
+// int nCompoOutlineId = EgtCreateCurveCompo(nTempLayerId, OutlineIdList.ToArray(), false);
+// Point3d ptP;
+// Vector3d vtL1;
+// Vector3d vtL2;
+// Vector3d vtB1;
+// Vector3d vtB2;
+// Vector3d vtN;
+// double dRad;
+// bool bCCW;
+// if (EgtCurveIsARectangle(nCompoOutlineId, 0.001, ptP, vtL1, vtL2))
+// return "R";
+// else if (EgtCurveIsACircle(nCompoOutlineId, ptP, vtN, dRad, bCCW))
+// return "C";
+// else if (EgtCurveIsATrapezoid(nCompoOutlineId, ptP, vtB1, vtL1, vtB2))
+// return "T";
+// else
+// for (var nOutlineIndex = 0; nOutlineIndex <= OutlineIdList.Count - 1; nOutlineIndex++)
+// {
+// if (EgtGetType(OutlineIdList[nOutlineIndex]) == GDB_TY.CRV_ARC)
+// {
+// Vector3d vtStart;
+// EgtStartVector(OutlineIdList[nOutlineIndex], GDB_ID.ROOT, vtStart);
+// Vector3d vtEnd;
+// EgtEndVector(OutlineIdList[nOutlineIndex], GDB_ID.ROOT, vtEnd);
+// int nPrevOutlineId = nOutlineId > 0 ? OutlineIdList[nOutlineIndex - 1] : OutlineIdList[OutlineIdList.Count - 1];
+// int dPrevLen;
+// EgtCurveLength(nPrevOutlineId, dPrevLen);
+// Vector3d vtPrev;
+// EgtStartVector(nPrevOutlineId, vtPrev);
+// int nNextOutlineId = nOutlineId < OutlineIdList.Count - 1 ? OutlineIdList[nOutlineIndex + 1] : OutlineIdList[0];
+// int dNextLen;
+// EgtCurveLength(nNextOutlineId, dNextLen);
+// Vector3d vtNext;
+// EgtEndVector(nNextOutlineId, vtNext);
+// if (Math.Abs(dPrevLen - dNextLen) < 10 * EPS_SMALL)
+// {
+// if (AreSameVectorApprox(vtEnd, vtNext))
+// return "AS";
+// else
+// return "AR";
+// }
+// else if (AreSameVectorApprox(vtEnd, vtNext))
+// return "SS";
+// else
+// return "SR";
+// }
+// }
+// return "R";
+// }
+
+// internal OpeningTypes GetOpeningType(Openings OpeningType)
+// {
+// switch (OpeningType)
+// {
+// case object _ when Openings.TURNONLY_LEFT:
+// case object _ when Openings.TURNONLY_RIGHT:
+// {
+// return OpeningTypes.TURNONLY;
+// }
+
+// case object _ when Openings.TILTTURN_LEFT:
+// case object _ when Openings.TILTTURN_RIGHT:
+// {
+// return OpeningTypes.TILTTURN;
+// }
+
+// case object _ when Openings.TILTONLY_TOP:
+// case object _ when Openings.TILTONLY_BOTTOM:
+// {
+// return OpeningTypes.TILTONLY;
+// }
+
+// case object _ when Openings.PIVOT:
+// {
+// return OpeningTypes.PIVOT;
+// }
+
+// case object _ when Openings.FIXED:
+// {
+// return OpeningTypes.FIXED;
+// }
+
+// case object _ when Openings.COMPLANARSLIDE_LEFT:
+// case object _ when Openings.COMPLANARSLIDE_RIGHT:
+// {
+// return OpeningTypes.COMPLANARSLIDE;
+// }
+
+// case object _ when Openings.LIFTSLIDE_LEFT:
+// case object _ when Openings.LIFTSLIDE_RIGHT:
+// {
+// return OpeningTypes.LIFTSLIDE;
+// }
+
+// default:
+// {
+// return OpeningTypes.NULL;
+// }
+// }
+// }
+
+// private void ConvertOpeningType()
+// {
+// if (m_SashList.Any(x => GetOpeningType(x.OpeningType) == OpeningTypes.TILTTURN))
+// return "AR";
+// else
+// switch (GetOpeningType(m_SashList(0).OpeningType))
+// {
+// case object _ when OpeningTypes.TURNONLY:
+// {
+// return "AB";
+// }
+
+// case object _ when OpeningTypes.TILTONLY:
+// {
+// return "VA";
+// }
+
+// case object _ when OpeningTypes.PIVOT:
+// {
+// return "BI";
+// }
+
+// case object _ when OpeningTypes.COMPLANARSLIDE:
+// {
+// return "CO";
+// }
+
+// case object _ when OpeningTypes.LIFTSLIDE:
+// {
+// return "AS";
+// }
+
+// default:
+// {
+// return "";
+// }
+// }
+// }
+
+// internal void RefreshHardwareList()
+// {
+// m_HardwareList.Clear();
+// string sSashShape = FindSashShape();
+// string sOpeningType = ConvertOpeningType();
+// m_HardwareList = new ObservableCollection(from Hardware in Map.refManageWindowVM.HardwareList
+// where Hardware.sId == "000000" || (Hardware.nSashQty == nSashQty && Hardware.sShape == sSashShape && Hardware.sOpeningType == sOpeningType)
+// select Hardware);
+// NotifyPropertyChanged(nameof(HardwareList));
+// }
+
+// internal void RefreshHardwareOptionList()
+// {
+// m_HwdOptionList.Clear();
+// NotifyPropertyChanged(nameof(HwdOptionList));
+// }
+
+// internal OpeningSides GetOpeningSide(Openings OpeningType)
+// {
+// switch (OpeningType)
+// {
+// case object _ when Openings.TURNONLY_LEFT:
+// case object _ when Openings.TILTTURN_LEFT:
+// case object _ when Openings.TILTONLY_TOP:
+// case object _ when Openings.COMPLANARSLIDE_LEFT:
+// case object _ when Openings.LIFTSLIDE_LEFT:
+// {
+// return OpeningSides.LEFT;
+// }
+
+// case object _ when Openings.TURNONLY_RIGHT:
+// case object _ when Openings.TILTTURN_RIGHT:
+// case object _ when Openings.TILTONLY_BOTTOM:
+// case object _ when Openings.COMPLANARSLIDE_RIGHT:
+// case object _ when Openings.LIFTSLIDE_RIGHT:
+// {
+// return OpeningSides.RIGHT;
+// }
+
+// default:
+// {
+// return OpeningSides.NULL;
+// }
+// }
+// }
+
+// internal override bool DrawArea(Area Area, int nAreaId)
+// {
+// // verifico se applicata
+// if (!bApplied)
+// return true;
+// // verifico che esista area sash con info corrette
+// if (IsNothing(m_JointList) || m_JointList.Count < 3 || IsNothing(m_SashType))
+// return false;
+// // se un'anta
+// if (nSashQty == 1)
+// {
+// // creo anta
+// var tf = EgtLuaSetGlobIntVar("WDG.AREAID", nAreaId);
+// var tg = EgtLuaSetGlobIntVar("WDG.JOINTBL", m_JointList(0).SelJointType);
+// var th = EgtLuaSetGlobIntVar("WDG.JOINTBR", m_JointList(1).SelJointType);
+// var tj = EgtLuaSetGlobIntVar("WDG.JOINTTR", m_JointList(2).SelJointType);
+// var tkt = EgtLuaSetGlobIntVar("WDG.JOINTTL", m_JointList(3).SelJointType);
+// var tft = EgtLuaSetGlobIntVar("WDG.SASHTYPE", m_SashType);
+// var tfr = EgtLuaSetGlobIntVar("WDG.OPENINGTYPE", m_SashList(0).SelOpeningType.Id);
+// var tlt = EgtLuaCallFunction("WinCreate_AddSash");
+// var tltf = EgtLuaGetGlobIntVar("WDG.AREAID", m_nAreaId);
+// nAreaId = m_nAreaId;
+// if (m_nAreaId == GDB_ID.NULL)
+// return false;
+// // aggiungo BottomRail se necessario
+// if (m_bBottomRail)
+// {
+// EgtLuaSetGlobIntVar("WDG.NBR", m_nBottomRailQty);
+// var tdlt = EgtLuaCallFunction("WinCreate_AddBottomRail");
+// }
+// }
+// else
+// {
+// // se piu' di un'anta
+// // creo split
+// EgtLuaSetGlobIntVar("WDG.AREAID", nAreaId);
+// EgtLuaSetGlobIntVar("WDG.SPLITORIENTATION", m_bIsSashVertical ? SplitShapes.VERTICAL : SplitShapes.HORIZONTAL);
+// EgtLuaSetGlobIntVar("WDG.SPLITTYPE", LuaSplitTypes.FRENCH);
+// EgtLuaSetGlobIntVar("WDG.MEASURETYPE", 3);
+// for (var PositionIndex = 0; PositionIndex <= SashList.Count - 2; PositionIndex++)
+// ;/* Cannot convert ExpressionStatementSyntax, System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitSimpleArgument(SimpleArgumentSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1069
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.<>c__DisplayClass83_0.b__0(ArgumentSyntax a, Int32 i) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1045
+// at System.Linq.Enumerable.SelectIterator[TSource,TResult](IEnumerable`1 source, Func`3 selector)+MoveNext()
+// at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
+// at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.SeparatedList[TNode](IEnumerable`1 nodes)
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitArgumentList(ArgumentListSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1022
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitInvocationExpression(InvocationExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1422
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitMemberAccessExpression(MemberAccessExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 977
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitBinaryExpression(BinaryExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1398
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitTernaryConditionalExpression(TernaryConditionalExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1339
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitSimpleArgument(SimpleArgumentSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1060
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.<>c__DisplayClass83_0.b__0(ArgumentSyntax a, Int32 i) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1045
+// at System.Linq.Enumerable.SelectIterator[TSource,TResult](IEnumerable`1 source, Func`3 selector)+MoveNext()
+// at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
+// at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.SeparatedList[TNode](IEnumerable`1 nodes)
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitArgumentList(ArgumentListSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1022
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitInvocationExpression(InvocationExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1422
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28
+// at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.MethodBodyVisitor.VisitExpressionStatement(ExpressionStatementSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/MethodBodyVisitor.cs:line 97
+// at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node)
+// at ICSharpCode.CodeConverter.CSharp.CommentConvertingMethodBodyVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingMethodBodyVisitor.cs:line 27
+
+//Input:
+// EgtLuaSetGlobNumVar("WDG.POSITION" & PositionIndex + 1, If(m_SashList(PositionIndex).bIsRelative, SashList(PositionIndex).dDimension / 100, SashList(PositionIndex).dDimension))
+
+// */
+// EgtLuaSetGlobNumVar("WDG.PROPORTION", SashList.Sum(x => x.dDimension / (double)100));
+// EgtLuaCallFunction("WinCreate_AddSplits");
+// int AreaIndex = 1;
+// int NewAreaId = GDB_ID.NULL;
+// while (EgtLuaGetGlobIntVar("WDG.AREAID" + AreaIndex, NewAreaId))
+// {
+// if (NewAreaId != GDB_ID.NULL)
+// {
+// Area.AreaList(AreaIndex - 1).nAreaId = NewAreaId;
+// AreaIndex += 1;
+// }
+// else
+// break;
+// }
+// EgtLuaGetGlobIntVar("WDG.AREAID", Area.nAreaId);
+// // calcolo OpeningSide e OpeningType
+// int nHandleIndex = SashList.IndexOf(SashList.FirstOrDefault(x => x.bHasHandle));
+// SashTypes[] SashTypeList = new SashTypes[m_SashList.Count - 1 + 1];
+// SashTypes[] FinalSashTypeList = new SashTypes[m_SashList.Count - 1 + 1];
+// for (var nSashIndex = 0; nSashIndex <= m_SashList.Count - 1; nSashIndex++)
+// {
+// // se active
+// if (GetOpeningSide(m_SashList(nSashIndex).OpeningType) == GetOpeningSide(m_SashList(nHandleIndex).OpeningType))
+// SashTypeList[nSashIndex] = SashTypes.ACTIVE;
+// else
+// // altrimenti inactive
+// SashTypeList[nSashIndex] = SashTypes.INACTIVE;
+// }
+// for (nSashIndex = 0; nSashIndex <= m_SashList.Count - 1; nSashIndex++)
+// {
+// if (nSashIndex == 0)
+// {
+// if (SashTypeList[nSashIndex] == SashTypeList[nSashIndex + 1])
+// {
+// if (SashTypeList[nSashIndex] == SashTypes.ACTIVE)
+// FinalSashTypeList[nSashIndex] = SashTypes.ACTIVE_OUT;
+// else
+// FinalSashTypeList[nSashIndex] = SashTypes.INACTIVE_OUT;
+// }
+// else
+// // rimane come e'
+// FinalSashTypeList[nSashIndex] = SashTypeList[nSashIndex];
+// }
+// else if (nSashIndex == m_SashList.Count - 1)
+// {
+// if (SashTypeList[nSashIndex] == SashTypeList[nSashIndex - 1])
+// {
+// if (SashTypeList[nSashIndex] == SashTypes.ACTIVE)
+// FinalSashTypeList[nSashIndex] = SashTypes.ACTIVE_OUT;
+// else
+// FinalSashTypeList[nSashIndex] = SashTypes.INACTIVE_OUT;
+// }
+// else
+// // rimane come e'
+// FinalSashTypeList[nSashIndex] = SashTypeList[nSashIndex];
+// }
+// else if (SashTypeList[nSashIndex] == SashTypeList[nSashIndex + 1] || SashTypeList[nSashIndex] == SashTypeList[nSashIndex - 1])
+// {
+// if (SashTypeList[nSashIndex] == SashTypes.ACTIVE)
+// FinalSashTypeList[nSashIndex] = SashTypes.ACTIVE_IN;
+// else
+// FinalSashTypeList[nSashIndex] = SashTypes.INACTIVE_IN;
+// }
+// else
+// // rimane come e'
+// FinalSashTypeList[nSashIndex] = SashTypeList[nSashIndex];
+// }
+// // creo ante
+// for (nSashIndex = 0; nSashIndex <= m_SashList.Count - 1; nSashIndex++)
+// {
+// var tf = EgtLuaSetGlobIntVar("WDG.AREAID", Area.AreaList(nSashIndex).nAreaId);
+// var tg = EgtLuaSetGlobIntVar("WDG.JOINTBL", m_JointList(0).SelJointType);
+// var th = EgtLuaSetGlobIntVar("WDG.JOINTBR", m_JointList(1).SelJointType);
+// var tj = EgtLuaSetGlobIntVar("WDG.JOINTTR", m_JointList(2).SelJointType);
+// var tkt = EgtLuaSetGlobIntVar("WDG.JOINTTL", m_JointList(3).SelJointType);
+// var tft = EgtLuaSetGlobIntVar("WDG.SASHTYPE", FinalSashTypeList[nSashIndex]);
+// var tfr = EgtLuaSetGlobIntVar("WDG.OPENINGTYPE", m_SashList(nSashIndex).SelOpeningType.Id);
+// var tlt = EgtLuaCallFunction("WinCreate_AddSash");
+// int nNewAreaId = GDB_ID.NULL;
+// var tltf = EgtLuaGetGlobIntVar("WDG.AREAID", nNewAreaId);
+// Area.AreaList(nSashIndex).nAreaId = nNewAreaId;
+// if (nNewAreaId == GDB_ID.NULL)
+// return false;
+// // aggiungo BottomRail se necessario
+// if (m_bBottomRail)
+// {
+// EgtLuaSetGlobIntVar("WDG.NBR", m_nBottomRailQty);
+// var tdlt = EgtLuaCallFunction("WinCreate_AddBottomRail");
+// }
+// }
+// }
+// // aggiungo ferramenta
+// if (!IsNothing(m_SelHardware))
+// {
+// EgtSetInfo(m_nAreaId, LUA_WIN_HDW_FAVOURITE, m_SelHardware.sId);
+// SashDimension HandleSash = m_SashList.FirstOrDefault(x => x.bHasHandle);
+// string sHandle = "Dx";
+// switch (GetOpeningSide(HandleSash.OpeningType))
+// {
+// case object _ when OpeningSides.LEFT:
+// {
+// sHandle = "Sx";
+// break;
+// }
+
+// case object _ when OpeningSides.RIGHT:
+// {
+// sHandle = "Dx";
+// break;
+// }
+// }
+// EgtSetInfo(m_nAreaId, LUA_WIN_HDW_HANDLE, sHandle);
+// string sOptions = "";
+// for (var OptionIndex = 0; OptionIndex <= m_HwdOptionList.Count - 1; OptionIndex++)
+// {
+// var HdwOption = m_HwdOptionList(OptionIndex);
+// sOptions += HdwOption.sName + "=" + HdwOption.sValue.sValue + OptionIndex < m_HwdOptionList.Count - 1 ? "," : "";
+// }
+// EgtSetInfo(m_nAreaId, LUA_WIN_HDW_OPTIONS, sOptions);
+// }
+// // lancio disegno delle sotto aree
+// foreach (var Area in AreaList)
+// {
+// if (!Area.DrawArea(Area, nAreaId))
+// return false;
+// }
+// return true;
+// }
+
+// internal override bool GetSelectionArea()
+// {
+// if (nSashQty == 1)
+// {
+// int nSelLayerId = EgtGetFirstNameInGroup(m_nAreaId, WIN_SELECTION);
+// if (nSelLayerId != GDB_ID.NULL)
+// SetSelectionGeomId(nSelLayerId);
+// }
+// else if (nSashQty > 1)
+// {
+// var nSplitIndex = 0;
+// int nArea1Id = GDB_ID.NULL;
+// int nArea2Id = GDB_ID.NULL;
+// int nSplitAreaId = m_nAreaId;
+// while (nSplitIndex < nSashQty - 1)
+// {
+// nArea1Id = EgtGetFirstNameInGroup(nSplitAreaId, WIN_AREA + 1);
+// nArea2Id = EgtGetFirstNameInGroup(nSplitAreaId, WIN_AREA + 2);
+// int nSashId = EgtGetFirstNameInGroup(nArea1Id, WIN_AREA + "*");
+// int nSashSelId = EgtGetFirstNameInGroup(nSashId, WIN_SELECTION);
+// SelectionGeomIds(nSplitIndex) = nSashSelId;
+// nSplitAreaId = nArea2Id;
+// nSplitIndex += 1;
+// }
+// nArea2Id = EgtGetFirstNameInGroup(EgtGetParent(nArea1Id), WIN_AREA + 2);
+// int nSash2Id = EgtGetFirstNameInGroup(nArea2Id, WIN_AREA + "*");
+// int nSash2SelId = EgtGetFirstNameInGroup(nSash2Id, WIN_SELECTION);
+// SelectionGeomIds(nSplitIndex) = nSash2SelId;
+// }
+// // lancio recupero area di selezione delle sotto aree
+// foreach (var Area in AreaList)
+// {
+// if (!Area.GetSelectionArea())
+// return false;
+// }
+// return true;
+// }
+
+// internal override JsonArea Serialize()
+// {
+// JsonSash JsonSash = new JsonSash(m_bIsSashVertical, m_SashType, m_SelHardware.sId);
+// foreach (var SashDimension in SashList)
+// JsonSash.SashList.Add(SashDimension.Serialize());
+// foreach (var Joint in JointList)
+// JsonSash.JointList.Add(Joint.Serialize());
+// foreach (var Area in AreaList)
+// JsonSash.AreaList.Add(Area.Serialize());
+// return JsonSash;
+// }
+// }
+
+
+ public class Joint
+ {
+ private int m_nIndex;
+ public int nIndex
+ {
+ get
+ {
+ return m_nIndex;
+ }
+ }
+
+ private List m_JointTypeList = new List
+ {
+ new IdNameStruct((int)Joints.ANGLED, "Angled"),
+ new IdNameStruct((int)Joints.FULL_H, "Full H"),
+ new IdNameStruct((int)Joints.FULL_V, "Full V")
+ };
+ public List JointTypeList
+ {
+ get
+ {
+ return m_JointTypeList;
+ }
+ }
+
+ private Joints m_SelJointType;
+ public int SelJointTypeIndex
+ {
+ get
+ {
+ return IdNameStruct.IndFromId((int)m_SelJointType, m_JointTypeList);
+ }
+ set
+ {
+ m_SelJointType = (Joints)IdNameStruct.IdFromInd(value, m_JointTypeList);
+ }
+ }
+ public Joints SelJointType
+ {
+ get
+ {
+ return m_SelJointType;
+ }
+ set
+ {
+ m_SelJointType = value;
+ }
+ }
+ internal void SetSelJointType(Joints value)
+ {
+ m_SelJointType = value;
+ //NotifyPropertyChanged(nameof(SelJointTypeIndex));
+ }
+ public Joint(int nIndex, Joints SelJointType)
+ {
+ m_nIndex = nIndex;
+ m_SelJointType = SelJointType;
+ }
+
+ internal JsonJoint Serialize()
+ {
+ JsonJoint JsonJoint = new JsonJoint(m_nIndex, m_SelJointType);
+ return JsonJoint;
+ }
+}
+
+ public class Curve
+ {
+ private GDB_TY m_CurveType;
+ public GDB_TY CurveType
+ {
+ get
+ {
+ return m_CurveType;
+ }
+ set
+ {
+ m_CurveType = value;
+ }
+ }
+
+ private Point3d m_ptStart;
+ public Point3d ptStart
+ {
+ get
+ {
+ return m_ptStart;
+ }
+ set
+ {
+ m_ptStart = value;
+ }
+ }
+
+ private Point3d m_ptEnd;
+ public Point3d ptEnd
+ {
+ get
+ {
+ return m_ptEnd;
+ }
+ set
+ {
+ m_ptEnd = value;
+ }
+ }
+ }
+
+// public class SashDimension
+// {
+// // reference
+// private Sash m_Parent;
+
+// private bool m_bIsRelative = false;
+// public bool bIsRelative
+// {
+// get
+// {
+// return m_bIsRelative;
+// }
+// }
+
+// private List m_OpeningTypeList = new List
+// {
+// new IdNameStruct((int)Openings.TURNONLY_LEFT, ">"),
+// new IdNameStruct((int)Openings.TURNONLY_RIGHT, "<"),
+// new IdNameStruct((int)Openings.TILTTURN_LEFT, ">*"),
+// new IdNameStruct((int)Openings.TILTTURN_RIGHT, "<*"),
+// new IdNameStruct((int)Openings.TILTONLY_TOP, "˄"),
+// new IdNameStruct((int)Openings.TILTONLY_BOTTOM, "˅"),
+// new IdNameStruct((int)Openings.PIVOT, "◊"),
+// new IdNameStruct((int)Openings.FIXED, "X"),
+// new IdNameStruct((int)Openings.COMPLANARSLIDE_LEFT, "-→"),
+// new IdNameStruct((int)Openings.COMPLANARSLIDE_RIGHT, "←-"),
+// new IdNameStruct((int)Openings.LIFTSLIDE_LEFT, "┌→"),
+// new IdNameStruct((int)Openings.LIFTSLIDE_RIGHT, "←┐")
+// };
+// public List OpeningTypeList
+// {
+// get
+// {
+// return m_OpeningTypeList;
+// }
+// }
+
+// // private IdNameStruct m_SelOpeningType;
+// // public IdNameStruct SelOpeningType
+// // {
+// // get
+// // {
+// // return m_SelOpeningType;
+// // }
+// // set
+// // {
+// // m_SelOpeningType = value;
+// // m_Parent.RefreshHardwareList();
+// // m_Parent.RefreshHardwareOptionList();
+// // m_Parent.SetFirstHardware();
+// // }
+// // }
+
+// // public Openings OpeningType
+// // {
+// // get
+// // {
+// // return m_SelOpeningType.Id;
+// // }
+// // }
+// //internal void SetOpeningType(Openings value)
+// //{
+// // m_SelOpeningType = m_OpeningTypeList.FirstOrDefault(x => x.Id == value);
+// // NotifyPropertyChanged(nameof(SelOpeningType));
+// //}
+
+// //private bool m_bHasHandle;
+// //public bool bHasHandle
+// //{
+// // get
+// // {
+// // return m_bHasHandle;
+// // }
+// // set
+// // {
+// // m_bHasHandle = value;
+// // }
+// //}
+// //internal void SetHasHandle(bool value)
+// //{
+// // m_bHasHandle = value;
+// // NotifyPropertyChanged(nameof(bHasHandle));
+// //}
+
+// //private double m_dDimension;
+// //public double dDimension
+// //{
+// // get
+// // {
+// // return m_dDimension;
+// // }
+// // set
+// // {
+// // // se sono in percentuale
+// // if (m_bIsRelative)
+// // {
+// // // verifico se ci sono assoluti
+// // List RelativeDimList = m_Parent.SashList.Where(x => x.bIsRelative).ToList();
+// // if (RelativeDimList.Count > 0)
+// // {
+// // if (m_Parent.bIsPercentage)
+// // {
+// // int nIndex = RelativeDimList.IndexOf(this);
+// // if (value < m_dDimension)
+// // {
+// // if (nIndex < RelativeDimList.Count - 1)
+// // RelativeDimList[nIndex + 1].SetDimension(RelativeDimList[nIndex + 1].dDimension + (m_dDimension - value));
+// // else if (RelativeDimList.Count > 1)
+// // RelativeDimList[nIndex - 1].SetDimension(RelativeDimList[nIndex - 1].dDimension + (m_dDimension - value));
+// // else
+// // {
+// // m_dDimension = 100;
+// // return;
+// // }
+// // }
+// // else
+// // {
+// // double dRes = value;
+// // if (nIndex < RelativeDimList.Count - 1)
+// // {
+// // for (var nInd = 0; nInd <= nIndex - 1; nInd++)
+// // dRes += RelativeDimList[nInd].dDimension;
+// // dRes = (100 - dRes) / (RelativeDimList.Count - nIndex - 1);
+// // for (var Ind = nIndex + 1; Ind <= RelativeDimList.Count - 1; Ind++)
+// // RelativeDimList[Ind].SetDimension(dRes);
+// // }
+// // else if (RelativeDimList.Count > 1)
+// // {
+// // for (var Ind = nIndex + 1; Ind <= RelativeDimList.Count - 1; Ind++)
+// // dRes += RelativeDimList[Ind].dDimension;
+// // dRes = (100 - dRes) / (nIndex - 1);
+// // for (var nInd = 0; nInd <= nIndex - 1; nInd++)
+// // RelativeDimList[nInd].SetDimension(dRes);
+// // }
+// // else
+// // {
+// // m_dDimension = 100;
+// // return;
+// // }
+// // }
+// // }
+// // else
+// // {
+// // }
+// // }
+// // }
+
+// // m_dDimension = value;
+// // }
+// //}
+// //internal void SetDimension(double dValue)
+// //{
+// // m_dDimension = dValue;
+// // NotifyPropertyChanged(nameof(dDimension));
+// //}
+
+// //public SashDimension(double dDimension, bool bIsRelative, Sash Parent)
+// //{
+// // m_dDimension = dDimension;
+// // m_bIsRelative = bIsRelative;
+// // m_Parent = Parent;
+// // // assengno maniglia
+// // if (Parent.SashList.Count == 0 || !Parent.SashList.Any(x => x.bHasHandle))
+// // m_bHasHandle = true;
+// // // assegno tipo di anta
+// // if (Parent.SashList.Count == 0)
+// // SetOpeningType(Openings.TILTTURN_LEFT);
+// // else if (Parent.SashList.Count == 1)
+// // {
+// // switch (Parent.SashList(0).OpeningType)
+// // {
+// // case object _ when Openings.TURNONLY_LEFT:
+// // {
+// // SetOpeningType(Openings.TURNONLY_RIGHT);
+// // break;
+// // }
+
+// // case object _ when Openings.TURNONLY_RIGHT:
+// // {
+// // SetOpeningType(Openings.TURNONLY_LEFT);
+// // break;
+// // }
+
+// // case object _ when Openings.TILTTURN_LEFT:
+// // {
+// // SetOpeningType(Openings.TILTTURN_RIGHT);
+// // break;
+// // }
+
+// // case object _ when Openings.TILTTURN_RIGHT:
+// // {
+// // SetOpeningType(Openings.TILTTURN_LEFT);
+// // break;
+// // }
+
+// // case object _ when Openings.TILTONLY_TOP:
+// // {
+// // SetOpeningType(Openings.TILTONLY_BOTTOM);
+// // break;
+// // }
+
+// // case object _ when Openings.TILTONLY_BOTTOM:
+// // {
+// // SetOpeningType(Openings.TILTONLY_TOP);
+// // break;
+// // }
+
+// // case object _ when Openings.COMPLANARSLIDE_LEFT:
+// // {
+// // SetOpeningType(Openings.COMPLANARSLIDE_RIGHT);
+// // break;
+// // }
+
+// // case object _ when Openings.COMPLANARSLIDE_RIGHT:
+// // {
+// // SetOpeningType(Openings.COMPLANARSLIDE_LEFT);
+// // break;
+// // }
+
+// // case object _ when Openings.LIFTSLIDE_LEFT:
+// // {
+// // SetOpeningType(Openings.LIFTSLIDE_RIGHT);
+// // break;
+// // }
+
+// // case object _ when Openings.LIFTSLIDE_RIGHT:
+// // {
+// // SetOpeningType(Openings.LIFTSLIDE_LEFT);
+// // break;
+// // }
+// // }
+// // }
+// // else
+// // SetOpeningType(Parent.SashList(Parent.SashList.Count - 1).OpeningType);
+// //}
+
+// //internal JsonSashDimension Serialize()
+// //{
+// // JsonSashDimension JsonSashDimension = new JsonSashDimension(OpeningType, m_bHasHandle, m_dDimension);
+// // return JsonSashDimension;
+// //}
+//}
+
+
+public struct IdNameStruct
+{
+ private int m_Id;
+
+ private string m_Name;
+
+ public int Id
+ {
+ get
+ {
+ return m_Id;
+ }
+ set
+ {
+ m_Id = value;
+ }
+ }
+
+ public string Name
+ {
+ get
+ {
+ return m_Name;
+ }
+ set
+ {
+ m_Name = value;
+ }
+ }
+
+ public IdNameStruct(int Id, string Name)
+ {
+ this = default(IdNameStruct);
+ m_Id = Id;
+ m_Name = Name;
+ }
+
+ public override string ToString()
+ {
+ return Name;
+ }
+
+ public static int IndFromId(int Id, ObservableCollection List)
+ {
+ checked
+ {
+ int num = List.Count - 1;
+ for (int i = 0; i <= num; i++)
+ {
+ if (List[i].Id == Id)
+ {
+ return i;
+ }
+ }
+
+ return 0;
+ }
+ }
+
+ public static int IndFromId(int Id, List List)
+ {
+ checked
+ {
+ int num = List.Count - 1;
+ for (int i = 0; i <= num; i++)
+ {
+ if (List[i].Id == Id)
+ {
+ return i;
+ }
+ }
+
+ return 0;
+ }
+ }
+
+ public static int IdFromInd(int Ind, ObservableCollection List)
+ {
+ return List[Ind].Id;
+ }
+
+ public static int IdFromInd(int Ind, List List)
+ {
+ return List[Ind].Id;
+ }
+
+ public static int IndFromId(int Id, ObservableCollection