using System; using System.Collections.Generic; using System.IO; using Newtonsoft.Json; namespace ProductionUiCordonelLegacy { /// /// Configuration of ProductionUi /// public class ApplicationSettings { public class Pos { public Double Left { get; set; } public Double Top { get; set; } public Double Height { get; set; } public Double Width { get; set; } } public class MultiFormChilds { public Type ViewModelType { get; set; } public Boolean Visisble { get; set; } public String Name { get; set; } public Int32 Slot { get; set; } public String TextPort { get; set; } public Pos StartPos { get; set; } } public Int32 Slot { get; set; } public Int32? PressureStationId { get; set; } public Boolean AutoDetect { get; set; } public Boolean AccessToPresuretestTab { get; set; } public Boolean AccessToMarrieTab { get; set; } public Boolean AccessToFinalcheckTab { get; set; } public Boolean AccessToSettingTab { get; set; } public Boolean AccessToStatusTab { get; set; } public Boolean AccessToPickingTab { get; set; } public Int32? SirtComport433 { get; set; } public Int32? SirtComport866 { get; set; } public Int32? SirtBoxNr { get; set; } public Int32? StationId { get; set; } public List ChildForms { get; set; } /// /// ctor /// public ApplicationSettings() { Slot = 0; AutoDetect = false; AccessToPresuretestTab = false; AccessToMarrieTab = false; AccessToFinalcheckTab = false; AccessToSettingTab = false; AccessToPickingTab = false; AccessToStatusTab = false; PressureStationId = null; SirtComport433 = null; SirtComport866 = null; SirtBoxNr = null; ChildForms = new List(); StationId = null; } /// public ApplicationSettings(String file) { //var configFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), nameof(Xylem.Common.Hardware.WaterMeter.Genesis), file); //if (!File.Exists(configFile)) //{ var configFile = Path.Combine(file); if (!File.Exists(configFile)) { Slot = 0; AutoDetect = false; AccessToPresuretestTab = false; AccessToMarrieTab = false; AccessToFinalcheckTab = false; AccessToSettingTab = false; AccessToPickingTab = false; AccessToStatusTab = false; PressureStationId = null; ChildForms = new List(); StationId = null; return; } //} using (var tr = new StreamReader(configFile)) { var meterConfig = JsonConvert.DeserializeObject(tr.ReadToEnd()); Slot = meterConfig.Slot; AutoDetect = meterConfig.AutoDetect; AccessToPresuretestTab = meterConfig.AccessToPresuretestTab; AccessToMarrieTab = meterConfig.AccessToMarrieTab; AccessToFinalcheckTab = meterConfig.AccessToFinalcheckTab; AccessToSettingTab = meterConfig.AccessToSettingTab; AccessToPickingTab = meterConfig.AccessToPickingTab; AccessToStatusTab = meterConfig.AccessToStatusTab; PressureStationId = meterConfig.PressureStationId; ChildForms = meterConfig.ChildForms; StationId = meterConfig.StationId; } } public void Update(String file) { var configFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), nameof(Xylem.Common.Hardware.WaterMeter.Genesis), file); if (!File.Exists(configFile)) { configFile = Path.Combine(file); } File.WriteAllText(file, JsonConvert.SerializeObject(this)); } } }