using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
|
namespace HDL_ON.Entity
|
{
|
public class FunctionList
|
{
|
/// <summary>
|
/// 空调列表
|
/// </summary>
|
public List<AC> aCs = new List<AC>();
|
/// <summary>
|
/// 灯光列表
|
/// </summary>
|
public List<Light> lights = new List<Light>();
|
/// <summary>
|
/// 窗帘列表
|
/// </summary>
|
public List<Curtain> curtains = new List<Curtain>();
|
/// <summary>
|
/// 地热列表
|
/// </summary>
|
public List<FloorHeating> floorHeatings = new List<FloorHeating>();
|
/// <summary>
|
/// 家电列表
|
/// </summary>
|
public List<Function> electricals
|
{
|
get
|
{
|
var list = new List<Function>();
|
list.AddRange(fans);
|
list.AddRange(switchSockets);
|
list.AddRange(tVs);
|
return list;
|
}
|
}
|
/// <summary>
|
/// 风扇列表
|
/// </summary>
|
public List<Fan> fans = new List<Fan>();
|
/// <summary>
|
/// 电视列表
|
/// </summary>
|
public List<TV> tVs = new List<TV>();
|
/// <summary>
|
/// 家电列表
|
/// </summary>
|
public List<SwitchSocket> switchSockets = new List<SwitchSocket>();
|
/// <summary>
|
/// 环境传感器列表
|
/// </summary>
|
public List<Sensor> sensorsEnvironmentalScience = new List<Sensor>();
|
|
/// <summary>
|
/// 场景列表
|
/// </summary>
|
public List<Scene> scenes = new List<Scene>();
|
|
|
[Newtonsoft.Json.JsonIgnore]
|
public List<Function> functions = new List<Function>();
|
|
/// <summary>
|
/// 获取所有功能列表
|
/// </summary>
|
public void GetAllFunction()
|
{
|
functions.Clear();
|
functions.AddRange(GetAllDeviceFunctionList());
|
functions.AddRange(scenes);
|
}
|
|
/// <summary>
|
/// 获取设备功能列表
|
/// </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);
|
|
return deviceFunctionList.OrderByDescending(o => o.usageCount).ToList();
|
}
|
|
public void AddFunction(object obj)
|
{
|
var f = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(obj.ToString());
|
|
switch (f.functionCategory)
|
{
|
case FunctionCategory.Thermostat:
|
switch (f.functionType)
|
{
|
case FunctionType.AC:
|
aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(obj.ToString()));
|
break;
|
case FunctionType.FloorHeating:
|
floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(obj.ToString()));
|
break;
|
}
|
break;
|
case FunctionCategory.Light:
|
lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(obj.ToString()));
|
break;
|
case FunctionCategory.Curtain:
|
curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(obj.ToString()));
|
break;
|
case FunctionCategory.Electrical:
|
switch(f.functionType)
|
{
|
case FunctionType.TV:
|
electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(obj.ToString()));
|
break;
|
case FunctionType.WindPower:
|
electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(obj.ToString()));
|
break;
|
case FunctionType.Fan:
|
electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(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<Sensor>(obj.ToString()));
|
break;
|
}
|
break;
|
}
|
}
|
|
}
|
|
}
|