using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.IO; using System.Linq; 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"; const string PROPERTY_DESCRIPTION = "Description"; const string PROPERTY_ICONPATH = "IconPath"; static string ConfigPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, SETTINGFILE); //static JObject data = null; //static JObject Data //{ // get // { // 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 JObject GetSettingData() { JObject settingData = null; if (File.Exists(ConfigPath)) { using (StreamReader reader = new StreamReader(ConfigPath, System.Text.Encoding.UTF8)) { string dataStr = reader.ReadToEnd(); settingData = JsonConvert.DeserializeObject(dataStr); } } return settingData; } public static List GetProductionCodes() { List codes = new List(); var Data = GetSettingData(); if (Data != null && Data.ContainsKey(PROPERTY_PRODUCTIONCODES)) { codes = Data.Value(PROPERTY_PRODUCTIONCODES).ToList().ConvertAll(u => u.ToString()); } if (codes.Count == 0) { codes.Add("Default"); } return codes; } public static List GetProcessCodes() { List codes = new List(); var Data = GetSettingData(); if (Data != null && Data.ContainsKey(PROPERTY_PROCESSCODES)) { codes = Data.Value(PROPERTY_PROCESSCODES).ToList().ConvertAll(u => u.ToString()); } return codes; } public static List AddNewProductionCode(string code) { var dataTemp = GetSettingData(); if (dataTemp != null && dataTemp.ContainsKey(PROPERTY_PRODUCTIONCODES)) { List codes = GetProductionCodes(); if (!codes.Contains(code)) { codes.Add(code); } dataTemp[PROPERTY_PRODUCTIONCODES] = new JArray(codes); string newDataStr = JsonConvert.SerializeObject(dataTemp, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Auto }); using (StreamWriter writer = new StreamWriter(ConfigPath, false, System.Text.Encoding.UTF8)) { writer.Write(newDataStr); writer.Flush(); writer.Close(); } } return GetProductionCodes(); } public static string GetConfigFilePath() { string path = ""; var Data = GetSettingData(); if (Data != null && Data.ContainsKey(PROPERTY_CONFIGPATH)) { path = Data.Value(PROPERTY_CONFIGPATH); } return path; } public static string GetProgramDescription() { string desc = "伯肯森自动化技术有限公司"; var Data = GetSettingData(); if (Data != null && Data.ContainsKey(PROPERTY_DESCRIPTION)) { desc = Data.Value(PROPERTY_DESCRIPTION); } return desc; } public static string GetProgramIcon() { string iconPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Logo.ico"); if (!File.Exists(iconPath)) { iconPath = ""; } var Data = GetSettingData(); if (Data != null && Data.ContainsKey(PROPERTY_ICONPATH)) { iconPath = Data.Value(PROPERTY_ICONPATH); } return iconPath; } } }