using Newtonsoft.Json.Converters; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace InitializerModel { public static class AppSettingConfig { private static AppSettingConfigModel _Instance; public static AppSettingConfigModel Instance { get { if (_Instance == null) { Reload(); } return _Instance; } private set => _Instance = value; } //private string _FirmwareRoot, _Language, _MES, _MechineCode; //private bool _IsDisableAuthRequired; //private string _JohnSenLedComPort; private static string settingFileName = "config.ini"; //public AppSettingConfig() //{ // if (!File.Exists(settingFileName)) // { // LoadDefaultSetting(); // } // else // { // LoadSettingFromDefaultFile(); // } //} public static void Reload() { //Instance = new AppSettingConfig(); if (!File.Exists(settingFileName)) { LoadDefaultSetting(); } else { LoadSettingFromDefaultFile(); } } public static void Save() { //var toSave = new AppSettingConfigModel(); //toSave.FirmwareRoot = _FirmwareRoot; //toSave.Language = _Language; //toSave.MES = _MES; //toSave.MechineCode = _MechineCode; //toSave.IsDisableAuthRequired = _IsDisableAuthRequired; File.WriteAllText( settingFileName, JsonConvert.SerializeObject( Instance, Formatting.Indented, new StringEnumConverter() )); } private static void LoadSettingFromDefaultFile() { try { LoadDefaultSetting(); var configStr = File.ReadAllText(settingFileName); var config = Newtonsoft.Json.JsonConvert.DeserializeObject(configStr); CompacityChnage(config); _Instance = config; //_Instance.FirmwareRoot = config.FirmwareRoot; //_Language = config.Language; //_MES = config.MES; //_MechineCode = config.MechineCode; //_IsDisableAuthRequired = config.IsDisableAuthRequired; //_JohnSenLedComPort = config.JohnSenLedComPort; } catch { } } private static void LoadDefaultSetting() { _Instance = new AppSettingConfigModel() { FirmwareRoot = "./Firmware", Language = "zh-chs", MES = "sajet2", MechineCode = "testMechineCode" }; } private static void CompacityChnage(AppSettingConfigModel config) { if (config == null) { return; } if (config.Language.ToLower() == "zh-chs") { config.Language = "zh-CHS"; } if (config.Language.ToLower() == "en-us") { config.Language = "en-US"; } } } }