using Egw.Window.Data; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Collections; using System.Collections.ObjectModel; using System.ComponentModel; using System.Drawing; using System.Runtime.Intrinsics.Arm; using System.Security.Cryptography; using System.Xml.Linq; using System.Xml.Serialization; using WebWindowComplex.Json; using static WebWindowComplex.Json.WindowConst; using static WebWindowComplex.ParametriOpzioni; namespace WebWindowComplex.Models { public class Window { #region Public Events public event EventHandler OnPreview = delegate { }; #endregion Public Events #region Public Properties public List AreaList { get { return m_AreaList; } set { m_AreaList = value; } } public string sColorMaterial { get { return m_sColorMaterial; } set { m_sColorMaterial = value; OnUpdatePreview(sSerialized()); } } public string sGlass { get { return m_sGlass; } set { m_sGlass = value; OnUpdatePreview(sSerialized()); } } public string sMaterial { get { return m_sMaterial; } set { m_sMaterial = value; OnUpdatePreview(sSerialized()); } } public string sProfilePath { get { return m_sProfilePath; } set { m_sProfilePath = value; } } #endregion Public Properties #region Internal Methods internal void OnUpdatePreview(string sJwd) { OnPreviewEventArgs e = new OnPreviewEventArgs(sJwd); EventHandler handler = OnPreview; if (handler != null) { handler(this, e); } } internal JsonWindow Serialize() { JsonWindow JsonWindow = new JsonWindow(sProfilePath, sMaterial, sColorMaterial, sGlass); foreach (var Area in AreaList) JsonWindow.AreaList.Add(Area.Serialize()); return JsonWindow; } internal string sSerialized() { return JsonConvert.SerializeObject(Serialize(), Formatting.Indented); } #endregion Internal Methods #region Private Fields private List m_AreaList = new List(); private string m_sColorMaterial; private string m_sGlass; private string m_sMaterial; private string m_sProfilePath; #endregion Private Fields } }