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