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); return deviceFunctionList.OrderByDescending(o => o.usageCount).ToList(); } 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; } } } }