using System; using System.Collections.Generic; using System.Linq; namespace HDL_ON.Entity { public class FunctionList { /// /// 空调列表 /// public List aCs = new List(); /// /// 灯光列表 /// public List lights = new List(); /// /// 窗帘列表 /// public List curtains = new List(); /// /// 地热列表 /// public List floorHeatings = new List(); /// /// 家电列表 /// public List electricals { get { var list = new List(); list.AddRange(fans); list.AddRange(switchSockets); list.AddRange(tVs); return list; } } /// /// 风扇列表 /// public List fans = new List(); /// /// 电视列表 /// public List tVs = new List(); /// /// 家电列表 /// public List switchSockets = new List(); /// /// 环境传感器列表 /// public List sensorsEnvironmentalScience = new List(); /// /// 场景列表 /// public List scenes = new List(); [Newtonsoft.Json.JsonIgnore] public List functions = new List(); /// /// 获取所有功能列表 /// public void GetAllFunction() { functions.Clear(); functions.AddRange(GetAllDeviceFunctionList()); functions.AddRange(scenes); } /// /// 获取设备功能列表 /// public List GetAllDeviceFunctionList() { var deviceFunctionList = new List(); 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(); } /// /// 清空设备功能列表 /// public void ClearAllDeviceFunctionList() { aCs = new List(); lights = new List(); curtains = new List(); floorHeatings = new List(); tVs = new List(); switchSockets = new List(); fans = new List(); sensorsEnvironmentalScience = new List(); functions = new List(); } /// /// 添加功能 /// /// public void AddDeviceFunction(Function sidObj0) { switch (sidObj0.functionType) { case FunctionType.AC: var sidObj = Newtonsoft.Json.JsonConvert.DeserializeObject(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); DB_ResidenceData.residenceData.functionList.aCs.Add(sidObj); break; case FunctionType.FloorHeating: var sidObj1 = Newtonsoft.Json.JsonConvert.DeserializeObject(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); DB_ResidenceData.residenceData.functionList.floorHeatings.Add(sidObj1); break; case FunctionType.Dimmer: case FunctionType.RGB: case FunctionType.Relay: var sidObj2 = Newtonsoft.Json.JsonConvert.DeserializeObject(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); DB_ResidenceData.residenceData.functionList.lights.Add(sidObj2); break; case FunctionType.Curtain: var sidObj3 = Newtonsoft.Json.JsonConvert.DeserializeObject(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); DB_ResidenceData.residenceData.functionList.curtains.Add(sidObj3 ); break; case FunctionType.TV: var sidObj4 = Newtonsoft.Json.JsonConvert.DeserializeObject(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); DB_ResidenceData.residenceData.functionList.tVs.Add(sidObj4); break; case FunctionType.Socket: var sidObj5 = Newtonsoft.Json.JsonConvert.DeserializeObject(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); DB_ResidenceData.residenceData.functionList.switchSockets.Add(sidObj5); break; case FunctionType.Fan: var sidObj6 = Newtonsoft.Json.JsonConvert.DeserializeObject(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); DB_ResidenceData.residenceData.functionList.fans.Add(sidObj6); break; case FunctionType.CO2: case FunctionType.TVOC: case FunctionType.PM25: case FunctionType.Temp: case FunctionType.Humidity: var sidObj7 = Newtonsoft.Json.JsonConvert.DeserializeObject(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience.Add(sidObj7); break; } } public void AddFunction(object obj) { var f = Newtonsoft.Json.JsonConvert.DeserializeObject(obj.ToString()); switch (f.functionCategory) { case FunctionCategory.Thermostat: switch (f.functionType) { case FunctionType.AC: aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject(obj.ToString())); break; case FunctionType.FloorHeating: floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject(obj.ToString())); break; } break; case FunctionCategory.Light: lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject(obj.ToString())); break; case FunctionCategory.Curtain: curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject(obj.ToString())); break; case FunctionCategory.Electrical: switch(f.functionType) { case FunctionType.TV: electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject(obj.ToString())); break; case FunctionType.WindPower: electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject(obj.ToString())); break; case FunctionType.Fan: electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject(obj.ToString())); break; } break; case FunctionCategory.Sensor: switch(f.functionType) { case FunctionType.TVOC: case FunctionType.CO2: case FunctionType.PM25: case FunctionType.Humidity: //case FunctionType.Noise: sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject(obj.ToString())); break; } break; } } } }