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