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<JObject>(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<JObject>(dataStr);
|
}
|
}
|
return settingData;
|
}
|
|
public static List<string> GetProductionCodes()
|
{
|
List<string> codes = new List<string>();
|
var Data = GetSettingData();
|
if (Data != null && Data.ContainsKey(PROPERTY_PRODUCTIONCODES))
|
{
|
codes = Data.Value<JArray>(PROPERTY_PRODUCTIONCODES).ToList().ConvertAll(u => u.ToString());
|
}
|
|
if (codes.Count == 0)
|
{
|
codes.Add("Default");
|
}
|
|
return codes;
|
}
|
|
public static List<string> GetProcessCodes()
|
{
|
List<string> codes = new List<string>();
|
var Data = GetSettingData();
|
if (Data != null && Data.ContainsKey(PROPERTY_PROCESSCODES))
|
{
|
codes = Data.Value<JArray>(PROPERTY_PROCESSCODES).ToList().ConvertAll(u => u.ToString());
|
}
|
return codes;
|
}
|
|
public static void AddNewProductionCode(string code)
|
{
|
var dataTemp = GetSettingData();
|
|
if (!dataTemp.ContainsKey(PROPERTY_PRODUCTIONCODES))
|
{
|
dataTemp.Add(PROPERTY_PRODUCTIONCODES, new JArray());
|
}
|
|
if (dataTemp != null && dataTemp.ContainsKey(PROPERTY_PRODUCTIONCODES))
|
{
|
List<string> 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();
|
}
|
}
|
}
|
|
public static string GetConfigFilePath()
|
{
|
string path = "";
|
var Data = GetSettingData();
|
if (Data != null && Data.ContainsKey(PROPERTY_CONFIGPATH))
|
{
|
path = Data.Value<string>(PROPERTY_CONFIGPATH);
|
}
|
|
return path;
|
}
|
|
public static string GetProgramDescription()
|
{
|
string desc = "伯肯森自动化技术有限公司";
|
var Data = GetSettingData();
|
if (Data != null && Data.ContainsKey(PROPERTY_DESCRIPTION))
|
{
|
desc = Data.Value<string>(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<string>(PROPERTY_ICONPATH);
|
}
|
|
return iconPath;
|
}
|
}
|
}
|