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 { public event EventHandler OnPreview = delegate { }; private string m_sProfilePath; public string sProfilePath { get { return m_sProfilePath; } set { m_sProfilePath = value; } } private string m_sMaterial; public string sMaterial { get { return m_sMaterial; } set { m_sMaterial = value; OnUpdatePreview(sSerialized()); } } private string m_sColorMaterial; public string sColorMaterial { get { return m_sColorMaterial; } set { m_sColorMaterial = value; OnUpdatePreview(sSerialized()); } } private string m_sGlass; public string sGlass { get { return m_sGlass; } set { m_sGlass = value; OnUpdatePreview(sSerialized()); } } private List m_AreaList = new List(); public List AreaList { get { return m_AreaList; } set { m_AreaList = value; } } 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); } internal void OnUpdatePreview(string sJwd) { OnPreviewEventArgs e = new OnPreviewEventArgs(sJwd); EventHandler handler = OnPreview; if (handler != null) { handler(this, e); } } } public class OnPreviewEventArgs : EventArgs { public string sJwd; public OnPreviewEventArgs(string sJwd) { this.sJwd = sJwd; } } public partial class ParametriOpzioni { public enum HDWOPTIONTYPES : int { TEXT = 1, LENGHT = 2, COMBO = 3 } protected HDWOPTIONTYPES m_Type; public HDWOPTIONTYPES Type { get { return m_Type; } } private string m_sName; public string sName { get { return m_sName; } } private string m_sDescription; public string sDescription { get { return m_sDescription; } } private Visibility m_OptVisibility; public Visibility OptVisibility { get { return m_OptVisibility; } } public ParametriOpzioni(ParametriOpzioniParametri HdwOptionParam) { m_sName = HdwOptionParam.NomeParametro; m_sDescription = HdwOptionParam.DescrizioneParametro; m_OptVisibility = Visibility.VISIBLE; // If(HdwOptionParam.Visible.ToLower = "true", Visibility.Visible, Visibility.Collapsed) } } public class AGBOptionCombo : ParametriOpzioni { private List m_ValueList = new List(); public List ValueList { get { return m_ValueList; } } private AGBOptionParameter m_sValue; public AGBOptionParameter sValue { get { return m_sValue; } set { m_sValue = value; } } public AGBOptionCombo(ParametriOpzioniParametri HdwOptionParam) : base(HdwOptionParam) { m_Type = HDWOPTIONTYPES.COMBO; foreach (var Value in HdwOptionParam.Opzioni) m_ValueList.Add(new AGBOptionParameter(Value.Valore, Value.DescrizioneOpzione)); m_sValue = m_ValueList.FirstOrDefault(x => x.sValue == HdwOptionParam.ValoreCorrente) ?? new AGBOptionParameter("", ""); } } public class AGBOptionParameter { private string m_sValue; public string sValue { get { return m_sValue; } } private string m_sDescription; public string sDescription { get { return m_sDescription; } } public AGBOptionParameter(string sValue, string sDescription) { m_sValue = sValue; m_sDescription = sDescription; } } public class AGBOptionText : ParametriOpzioni { private string m_sValue; public string sValue { get { return m_sValue; } set { m_sValue = value; } } public AGBOptionText(ParametriOpzioniParametri HdwOptionParam) : base(HdwOptionParam) { m_Type = HDWOPTIONTYPES.TEXT; m_sValue = HdwOptionParam.ValoreCorrente; } } 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, 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, List List) { return List[Ind].Id; } public static int IndFromId(int Id, List List) { checked { int num = List.Count - 1; for (int i = 0; i <= num; i++) { if (List[i] is IdNameStruct && ((IdNameStruct)List[i]).Id == Id) { return i; } } return 0; } } public static int IdFromInd(int Ind, List List) { if (List[Ind] is IdNameStruct) { return ((IdNameStruct)List[Ind]).Id; } return 0; } public static int IdFromName(string Name, List List) { checked { int num = List.Count - 1; for (int i = 0; i <= num; i++) { if (string.Compare(((IdNameStruct)List[i]).Name, Name, false) == 0) { return ((IdNameStruct)List[i]).Id; } } return 0; } } } }