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;
}
}
}
}