From 4cb676856f0c791ffcbef569c0ca8195bf8b0938 Mon Sep 17 00:00:00 2001
From: wells.liu <wells.liu@broconcentric.com>
Date: 星期六, 04 七月 2020 18:05:47 +0800
Subject: [PATCH] 数据库操作

---
 src/Bro.Common.Model/Helper/SettingHelper.cs |   79 ++++++++++++++++++++++++++++-----------
 1 files changed, 56 insertions(+), 23 deletions(-)

diff --git a/src/Bro.Common.Model/Helper/SettingHelper.cs b/src/Bro.Common.Model/Helper/SettingHelper.cs
index 8bfefd6..a14100e 100644
--- a/src/Bro.Common.Model/Helper/SettingHelper.cs
+++ b/src/Bro.Common.Model/Helper/SettingHelper.cs
@@ -16,32 +16,42 @@
         const string PROPERTY_DESCRIPTION = "Description";
         const string PROPERTY_ICONPATH = "IconPath";
 
-        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<JObject>(dataStr);
-                        }
-                    }
-                }
+        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;
+        //    }
+        //}
 
-                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());
@@ -58,7 +68,7 @@
         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());
@@ -66,10 +76,33 @@
             return codes;
         }
 
+        public static List<string> AddNewProductionCode(string code)
+        {
+            var dataTemp = GetSettingData();
+            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();
+                }
+            }
+            return GetProductionCodes();
+        }
+
         public static string GetConfigFilePath()
         {
             string path = "";
-
+            var Data = GetSettingData();
             if (Data != null && Data.ContainsKey(PROPERTY_CONFIGPATH))
             {
                 path = Data.Value<string>(PROPERTY_CONFIGPATH);
@@ -81,7 +114,7 @@
         public static string GetProgramDescription()
         {
             string desc = "浼偗妫嚜鍔ㄥ寲鎶�鏈湁闄愬叕鍙�";
-
+            var Data = GetSettingData();
             if (Data != null && Data.ContainsKey(PROPERTY_DESCRIPTION))
             {
                 desc = Data.Value<string>(PROPERTY_DESCRIPTION);
@@ -98,7 +131,7 @@
             {
                 iconPath = "";
             }
-
+            var Data = GetSettingData();
             if (Data != null && Data.ContainsKey(PROPERTY_ICONPATH))
             {
                 iconPath = Data.Value<string>(PROPERTY_ICONPATH);

--
Gitblit v1.8.0