From a715181089be0d31cd737a5367ffd02690b9d77f Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 12 十一月 2020 13:36:01 +0800 Subject: [PATCH] 20201112 --- HDL_ON/Entity/FunctionList.cs | 113 +++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 82 insertions(+), 31 deletions(-) diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs index 4b0b5bb..862f3b9 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,16 +102,26 @@ /// </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); - - return deviceFunctionList.OrderByDescending(o => o.usageCount).ToList(); + //if (deviceFunctionList == null || deviceFunctionList.Count == 0) + { + 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); + } + try + { + deviceFunctionList.OrderByDescending(o => o.usageCount).ToList(); + } + catch (Exception ex) + { + MainPage.Log($"璁惧鍔熻兘鎺掑簭寮傚父锛歿ex.Message}"); + } + return deviceFunctionList; } /// <summary> /// 娓呯┖璁惧鍔熻兘鍒楄〃 @@ -101,11 +136,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 +152,42 @@ { 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: + case FunctionType.RollingShutter: + case FunctionType.MotorCurtain: 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 +195,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 +234,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 +256,6 @@ break; } } - } - + } -- Gitblit v1.8.0