using WebWindowComplex.Json; using static WebWindowComplex.Json.WindowConst; namespace WebWindowComplex.Models { public class Inglesina : Split { public Inglesina(Area ParentArea, Window ParentWindow) : base(ParentArea, ParentWindow) { } public int SelSideIndex { get { return (int)m_SelSide; } set { m_SelSide = (SideInglesina)value; } } internal override JsonArea Serialize(bool hideHw) { if (nCounterGroup < GroupId) Area.nCounterGroup = GroupId; JsonInglesina JsonInglesina = new JsonInglesina(m_SelSide, SelSplitShape, GroupId); JsonInglesina.SplitStartVert = bSplitStartVert; foreach (var SplitVert in SplitVertList) JsonInglesina.SplitVertList.Add(SplitVert.Serialize()); foreach (var SplitHoriz in SplitHorizList) JsonInglesina.SplitHorizList.Add(SplitHoriz.Serialize()); if (ElemDimHorizList != null && ElemDimHorizList.Count > 0) { int subAreaMinHoriz = ElemDimHorizList.Min(x => x.nSubArea); List horizList = ElemDimHorizList.Where(x => x.nSubArea == subAreaMinHoriz).ToList(); foreach (var Elem in horizList) JsonInglesina.ElementDimHorizList.Add(Elem.Serialize()); } if (ElemDimVertList != null && ElemDimVertList.Count > 0) { int subAreaMinVert = ElemDimVertList.Min(x => x.nSubArea); List vertList = ElemDimVertList.Where(x => x.nSubArea == subAreaMinVert).ToList(); foreach (var Elem in vertList.ToList()) JsonInglesina.ElementDimVertList.Add(Elem.Serialize()); } foreach (var Area in AreaList) JsonInglesina.AreaList.Add(Area.Serialize(hideHw)); return JsonInglesina; } internal static Inglesina CreateInglesina(Area Area, SplitShapes SplitShape) { Inglesina inglesina = new Inglesina(Area, Area.ParentWindow); AddCounterGroup(); inglesina.SetGroupId(nCounterGroup); inglesina.SetAreaType(AreaTypes.INGLESINA); inglesina.SetSplitShape(SplitShape); inglesina.SetSelSide(SideInglesina.BOTH); return inglesina; } public override Inglesina Copy(Area newParentArea) { Inglesina newInglesina = new Inglesina(newParentArea, m_ParentWindow); AddCounterGroup(); newInglesina.SetGroupId(nCounterGroup); newInglesina.SetSelSide(m_SelSide); newInglesina.SetSplitStartVert(bSplitStartVert); for (int i = 0; i < SplitVertList.Count; i++) newInglesina.SplitVertList.Add(SplitVertList[i].Copy()); for (int i = 0; i < SplitHorizList.Count; i++) newInglesina.SplitHorizList.Add(SplitHorizList[i].Copy()); newInglesina.SetSplitShape(SelSplitShape); newInglesina.SetAreaType(AreaType); foreach (var item in ElemDimHorizList) { SplitElementDimension newElementDimension = item.Copy(); newInglesina.ElemDimHorizList.Add(newElementDimension); } foreach (var item in ElemDimVertList) { SplitElementDimension newElementDimension = item.Copy(); newInglesina.ElemDimVertList.Add(newElementDimension); } if (AreaList != null && AreaList.Count > 0) { foreach (var item in AreaList) { Area a = item.Copy(newInglesina); newInglesina.AreaList.Add(a); } } return newInglesina; } internal void SetSelSide(SideInglesina side) { m_SelSide = side; } public List SideList { get { return m_SideList; } } private List m_SideList = new List { new IdNameStruct((int)SideInglesina.INTERNAL, "Internal"), new IdNameStruct((int)SideInglesina.EXTERNAL, "External"), new IdNameStruct((int)SideInglesina.BOTH, "Both") }; private SideInglesina m_SelSide; } }