using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Bro.Common.Helper { public class SettingHelper { const string SETTINGFILE = "Setting.json"; const string PROPERTY_PRODUCTIONCODES = "ProductionCodes"; const string PROPERTY_CONFIGPATH = "ConfigPath"; const string PROPERTY_PROCESSCODES = "ProcessCodes"; static JObject data = null; static JObject Data { get { if (data == null) { string configPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, SETTINGFILE); if (File.Exists(configPath)) { using (StreamReader reader = new StreamReader(configPath, System.Text.Encoding.UTF8)) { string dataStr = reader.ReadToEnd(); data = JsonConvert.DeserializeObject(dataStr); } } } return data; } } public static List GetProductionCodes() { List codes = new List(); if (Data != null && Data.ContainsKey(PROPERTY_PRODUCTIONCODES)) { codes = JsonConvert.DeserializeObject>(Data.Value(PROPERTY_PRODUCTIONCODES)); } if (codes.Count == 0) { codes.Add("Default"); } return codes; } public static List GetProcessCodes() { List codes = new List(); if (Data != null && Data.ContainsKey(PROPERTY_PROCESSCODES)) { codes = JsonConvert.DeserializeObject>(data.Value(PROPERTY_PROCESSCODES)); } return codes; } public static string GetConfigFilePath() { string path = ""; if (Data != null && Data.ContainsKey(PROPERTY_CONFIGPATH)) { path = Data.Value(PROPERTY_CONFIGPATH); } return path; } } }