From 7d005a7618e3d7a80d8ede3baf6ecc4bf8019cd5 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 01 九月 2020 15:22:09 +0800
Subject: [PATCH] 2020-09-01

---
 HDL_ON/Entity/FunctionList.cs |  101 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 71 insertions(+), 30 deletions(-)

diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index 4b0b5bb..0e910dc 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -1,11 +1,17 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Linq;
+using HDL_ON.DAL;
 
 namespace HDL_ON.Entity
 {
-    public class FunctionList 
+    public class FunctionList
     {
+        public FunctionList()
+        {
+
+        }
+
         /// <summary>
         /// 绌鸿皟鍒楄〃
         /// </summary>
@@ -22,6 +28,7 @@
         /// 鍦扮儹鍒楄〃
         /// </summary>
         public List<FloorHeating> floorHeatings = new List<FloorHeating>();
+        #region 瀹剁數鍒楄〃 electricals
         /// <summary>
         /// 瀹剁數鍒楄〃
         /// </summary>
@@ -29,6 +36,18 @@
         {
             get
             {
+                if(fans == null)
+                {
+                    fans = new List<Fan>();
+                }
+                if(switchSockets == null)
+                {
+                    switchSockets = new List<SwitchSocket>();
+                }
+                if(tVs == null)
+                {
+                    tVs = new List<TV>();
+                }
                 var list = new List<Function>();
                 list.AddRange(fans);
                 list.AddRange(switchSockets);
@@ -48,6 +67,7 @@
         /// 瀹剁數鍒楄〃
         /// </summary>
         public List<SwitchSocket> switchSockets = new List<SwitchSocket>();
+        #endregion
         /// <summary>
         /// 鐜浼犳劅鍣ㄥ垪琛�
         /// </summary>
@@ -57,19 +77,24 @@
         /// 鍦烘櫙鍒楄〃
         /// </summary>
         public List<Scene> scenes = new List<Scene>();
+        /// <summary>
+        /// 鍔熻兘鍒楄〃
+        /// </summary>
+        List<Function> deviceFunctionList;
+        //[Newtonsoft.Json.JsonIgnore]
+        //public List<Function> functions = new List<Function>();
 
 
-        [Newtonsoft.Json.JsonIgnore]
-        public List<Function> functions = new List<Function>();
 
         /// <summary>
         /// 鑾峰彇鎵�鏈夊姛鑳藉垪琛�
         /// </summary>
-        public void GetAllFunction()
+        public List<Function> GetAllFunction()
         {
-            functions.Clear();
-            functions.AddRange(GetAllDeviceFunctionList());
-            functions.AddRange(scenes);
+            var fs = new List<Function>();
+            fs.AddRange(GetAllDeviceFunctionList());
+            fs.AddRange(scenes);
+            return fs;
         }
 
         /// <summary>
@@ -77,15 +102,17 @@
         /// </summary>
         public List<Function> GetAllDeviceFunctionList()
         {
-            var deviceFunctionList = new List<Function>();
-            deviceFunctionList.AddRange(aCs);
-            deviceFunctionList.AddRange(lights);
-            deviceFunctionList.AddRange(curtains);
-            deviceFunctionList.AddRange(floorHeatings);
-            deviceFunctionList.AddRange(electricals);
-            deviceFunctionList.AddRange(sensorsEnvironmentalScience);
-            deviceFunctionList.AddRange(HDL_ON.UI.Music.A31MusicModel.A31MusicModelList);
-
+            if (deviceFunctionList == null)
+            {
+                deviceFunctionList = new List<Function>();
+                deviceFunctionList.AddRange(aCs);
+                deviceFunctionList.AddRange(lights);
+                deviceFunctionList.AddRange(curtains);
+                deviceFunctionList.AddRange(floorHeatings);
+                deviceFunctionList.AddRange(electricals);
+                deviceFunctionList.AddRange(sensorsEnvironmentalScience);
+                deviceFunctionList.AddRange(UI.Music.A31MusicModel.A31MusicModelList);
+            }
             return deviceFunctionList.OrderByDescending(o => o.usageCount).ToList();
         }
         /// <summary>
@@ -101,11 +128,14 @@
             switchSockets = new List<SwitchSocket>();
             fans = new List<Fan>();
             sensorsEnvironmentalScience = new List<Sensor>();
-            functions = new List<Function>();
+            //functions = new List<Function>();
+            scenes = new List<Scene>();
+            deviceFunctionList = null;
         }
 
         /// <summary>
-        /// 娣诲姞鍔熻兘
+        /// 鎺ユ敹bus杞欢涓婁紶鐨勫姛鑳�
+        /// tcp鏂瑰紡
         /// </summary>
         /// <param name="sidObj"></param>
         public void AddDeviceFunction(Function sidObj0)
@@ -114,33 +144,40 @@
             {
                 case FunctionType.AC:
                     var sidObj =  Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.aCs.Add(sidObj);
+                    DB_ResidenceData.functionList.aCs.Add(sidObj);
+                    sidObj.SaveFunctionData();
                     break;
                 case FunctionType.FloorHeating:
                     var sidObj1 =  Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.floorHeatings.Add(sidObj1);
+                    DB_ResidenceData.functionList.floorHeatings.Add(sidObj1);
+                    sidObj1.SaveFunctionData();
                     break;
                 case FunctionType.Dimmer:
                 case FunctionType.RGB:
                 case FunctionType.Relay:
                     var sidObj2 =  Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.lights.Add(sidObj2);
+                    DB_ResidenceData.functionList.lights.Add(sidObj2);
+                    sidObj2.SaveFunctionData();
                     break;
                 case FunctionType.Curtain:
                     var sidObj3 =  Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.curtains.Add(sidObj3 );
+                    DB_ResidenceData.functionList.curtains.Add(sidObj3 );
+                    sidObj3.SaveFunctionData();
                     break;
                 case FunctionType.TV:
                     var sidObj4 =  Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.tVs.Add(sidObj4);
+                    DB_ResidenceData.functionList.tVs.Add(sidObj4);
+                    sidObj4.SaveFunctionData();
                     break;
                 case FunctionType.Socket:
                     var sidObj5 =  Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.switchSockets.Add(sidObj5);
+                    DB_ResidenceData.functionList.switchSockets.Add(sidObj5);
+                    sidObj5.SaveFunctionData();
                     break;
                 case FunctionType.Fan:
                     var sidObj6 =  Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.fans.Add(sidObj6);
+                    DB_ResidenceData.functionList.fans.Add(sidObj6);
+                    sidObj6.SaveFunctionData();
                     break;
                 case FunctionType.CO2:
                 case FunctionType.TVOC:
@@ -148,11 +185,16 @@
                 case FunctionType.Temp:
                 case FunctionType.Humidity:
                     var sidObj7 =  Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience.Add(sidObj7);
+                    DB_ResidenceData.functionList.sensorsEnvironmentalScience.Add(sidObj7);
+                    sidObj7.SaveFunctionData();
                     break;
             }
         }
-
+        /// <summary>
+        /// 鎺ユ敹bus杞欢涓婁紶鐨勫姛鑳�
+        /// http udp
+        /// </summary>
+        /// <param name="obj"></param>
         public void AddFunction(object obj)
         {
             var f = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(obj.ToString());
@@ -182,7 +224,7 @@
                         case FunctionType.TV:
                             electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(obj.ToString()));
                             break;
-                        case FunctionType.WindPower:
+                        case FunctionType.Socket:
                             electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(obj.ToString()));
                             break;
                         case FunctionType.Fan:
@@ -204,7 +246,6 @@
                     break;
             }
         }
-
     }
-    
+
 }

--
Gitblit v1.8.0