using System;
using System.IO;
using System.Net;
using HDL_ON.DAL.Server;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
public class Send
{
/////
///// 住宅ID
/////
//public static string homeId = Entity.DB_ResidenceData.residenceData.CurReginID;
/////
///// 网关ID
/////
//public static string gatewayId = DriverLayer.Control.Ins.GatewayId;
///
/// 住宅ID
///
public static string homeId = "1333723044544233473";
///
/// 网关ID
///
public static string gatewayId = "1333723647223775233";
/////
///// 获取逻辑ID列表
/////
/////
//public const string getLogicId = "获取逻辑ID";
/////
///// 获取逻辑
/////
/////
//public const string getLogic= "获取逻辑详细";
/////
///// 添加自动化命令
/////
/////
//public const string addLogic= "添加新逻辑";
/////
///// 编辑更新逻辑
/////
/////
//public const string updateLogic = "编辑逻辑";
/////
///// 删除逻辑
/////
/////
//public const string delLogic = "删除逻辑";
/////
///// 逻辑开关
/////
/////
//public const string switchLogic = "逻辑开关";
//public static ResponsePackNew Logic(string type,Logic logic) {
// string url = "";
// var jObject = new JObject { };
// switch (type) {
// case getLogicId: {
// jObject.Add("homeId",homeId);
// url = NewAPI.API_POST_Logic_List;
// }
// break;
// case getLogic: {
// var jArray = new JArray { };
// jArray.Add(logic.userLogicId);
// jObject.Add("userLogicIds", jArray);
// url = NewAPI.API_POST_Logic_Info;
// } break;
// case addLogic: {
// try
// {
// var cycleJObject = new JObject { };
// var cyclevaluejArray = new JArray { };
// cycleJObject.Add("type", logic.cycle.type);
// foreach (var dictionary in logic.cycle.value)
// {
// cyclevaluejArray.Add(dictionary);
// }
// cycleJObject.Add("value", cyclevaluejArray);
// var inputArray = new JArray { };
// foreach (var dictionary in logic.input)
// {
// var inputTypeJOb = new JObject { };
// inputTypeJOb.Add("sid", dictionary.sid);
// inputTypeJOb.Add("condition_type", dictionary.condition_type);
// var conditionArray = new JArray { };
// foreach (var dic in dictionary.condition)
// {
// var conditionJOb = new JObject { };
// conditionJOb.Add("key", dic["key"]);
// conditionJOb.Add("comparator", dic["comparator"]);
// conditionJOb.Add("data_type", dic["data_type"]);
// conditionJOb.Add("value", dic["value"]);
// conditionArray.Add(conditionJOb);
// }
// inputTypeJOb.Add("condition", conditionArray);
// inputArray.Add(inputTypeJOb);
// }
// var outputArray = new JArray { };
// foreach (var dictionary in logic.output)
// {
// var outputTypeJOb = new JObject { };
// outputTypeJOb.Add("sid", dictionary.sid);
// outputTypeJOb.Add("target_type", dictionary.target_type);
// var statusArray = new JArray { };
// foreach (var dic in dictionary.status)
// {
// var statusJOb = new JObject { };
// statusJOb.Add("key", dic["key"]);
// statusJOb.Add("value", dic["value"]);
// statusArray.Add(statusJOb);
// }
// outputTypeJOb.Add("status", statusArray);
// outputArray.Add(outputTypeJOb);
// }
// var logicjArray = new JArray { };
// var logicIfon = new JObject { };
// logicIfon.Add("sid", logic.sid);
// logicIfon.Add("gatewayId", gatewayId);
// logicIfon.Add("name", logic.name);
// logicIfon.Add("relation", logic.relation);
// logicIfon.Add("enable", logic.enable);
// logicIfon.Add("cycle", cycleJObject);
// logicIfon.Add("input", inputArray);
// logicIfon.Add("output", outputArray);
// logicjArray.Add(logicIfon);
// var jObject = new JObject { { "homeId", homeId }, { "logics", logicjArray } };
// responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add);
// }
// catch (Exception e)
// {
// var dd = e.Message;
// }
// } break;
// case updateLogic: {
// } break;
// case delLogic: { } break;
// case switchLogic: { } break;
// }
// return RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add);
//}
///
/// 获取逻辑ID列表
///
///
public static ResponsePackNew getLogicIdList()
{
var jObject = new JObject { { "homeId", homeId } };
var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_List);
return responsePackNew;
}
///
/// 获取逻辑
///
///
public static ResponsePackNew getLogic(Logic logic)
{
var jArray = new JArray { };
jArray.Add(logic.userLogicId);
var jObject = new JObject { { "userLogicIds", jArray } };
var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Info);
return responsePackNew;
}
///
/// 添加自动化命令
///
///
///
public static ResponsePackNew AddLogic(Logic logic)
{
ResponsePackNew responsePackNew = null;
try
{
var cycleJObject = new JObject { };
var cyclevaluejArray = new JArray { };
cycleJObject.Add("type", logic.cycle.type);
foreach (var dictionary in logic.cycle.value)
{
cyclevaluejArray.Add(dictionary);
}
cycleJObject.Add("value", cyclevaluejArray);
var inputArray = new JArray { };
foreach (var dictionary in logic.input)
{
var inputTypeJOb = new JObject { };
inputTypeJOb.Add("sid", dictionary.sid);
inputTypeJOb.Add("condition_type", dictionary.condition_type);
var conditionArray = new JArray { };
foreach (var dic in dictionary.condition)
{
var conditionJOb = new JObject { };
conditionJOb.Add("key", dic["key"]);
conditionJOb.Add("comparator", dic["comparator"]);
conditionJOb.Add("data_type", dic["data_type"]);
conditionJOb.Add("value", dic["value"]);
conditionArray.Add(conditionJOb);
}
inputTypeJOb.Add("condition",conditionArray);
inputArray.Add(inputTypeJOb);
}
var outputArray = new JArray { };
foreach (var dictionary in logic.output)
{
var outputTypeJOb = new JObject { };
outputTypeJOb.Add("sid", dictionary.sid);
outputTypeJOb.Add("target_type", dictionary.target_type);
var statusArray = new JArray { };
foreach (var dic in dictionary.status)
{
var statusJOb = new JObject { };
statusJOb.Add("key", dic["key"]);
statusJOb.Add("value", dic["value"]);
statusArray.Add(statusJOb);
}
outputTypeJOb.Add("status", statusArray);
outputArray.Add(outputTypeJOb);
}
var logicjArray = new JArray { };
var logicIfon = new JObject { };
logicIfon.Add("sid", logic.sid);
logicIfon.Add("gatewayId", gatewayId);
logicIfon.Add("name", logic.name);
logicIfon.Add("relation", logic.relation);
logicIfon.Add("enable", logic.enable);
logicIfon.Add("cycle", cycleJObject);
logicIfon.Add("input", inputArray);
logicIfon.Add("output", outputArray);
logicjArray.Add(logicIfon);
var jObject = new JObject { { "homeId", homeId }, { "logics", logicjArray } };
responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add);
}
catch (Exception e)
{
var dd = e.Message;
}
return responsePackNew;
}
///
/// 编辑更新逻辑
///
///
///
public static ResponsePackNew updateLogic(Logic logic)
{
ResponsePackNew responsePackNew = null;
try
{
var cycleJObject = new JObject { };
var cyclevaluejArray = new JArray { };
cycleJObject.Add("type", logic.cycle.type);
foreach (var dictionary in logic.cycle.value)
{
cyclevaluejArray.Add(dictionary);
}
cycleJObject.Add("value", cyclevaluejArray);
var inputArray = new JArray { };
foreach (var dictionary in logic.input)
{
var inputTypeJOb = new JObject { };
inputTypeJOb.Add("sid", dictionary.sid);
inputTypeJOb.Add("condition_type", dictionary.condition_type);
var conditionArray = new JArray { };
foreach (var dic in dictionary.condition)
{
var conditionJOb = new JObject { };
conditionJOb.Add("key", dic["key"]);
conditionJOb.Add("comparator", dic["comparator"]);
conditionJOb.Add("data_type", dic["data_type"]);
conditionJOb.Add("value", dic["value"]);
conditionArray.Add(conditionJOb);
}
inputTypeJOb.Add("condition", conditionArray);
inputArray.Add(inputTypeJOb);
}
var outputArray = new JArray { };
foreach (var dictionary in logic.output)
{
var outputTypeJOb = new JObject { };
outputTypeJOb.Add("sid", dictionary.sid);
outputTypeJOb.Add("target_type", dictionary.target_type);
var statusArray = new JArray { };
foreach (var dic in dictionary.status)
{
var statusJOb = new JObject { };
statusJOb.Add("key", dic["key"]);
statusJOb.Add("value", dic["value"]);
statusArray.Add(statusJOb);
}
outputTypeJOb.Add("status", statusArray);
outputArray.Add(outputTypeJOb);
}
var logicjArray = new JArray { };
var logicIfon = new JObject { };
logicIfon.Add("userLogicId", logic.userLogicId);
logicIfon.Add("sid", logic.sid);
logicIfon.Add("gatewayId", gatewayId);
logicIfon.Add("name", logic.name);
logicIfon.Add("relation", logic.relation);
logicIfon.Add("enable", logic.enable);
logicIfon.Add("cycle", cycleJObject);
logicIfon.Add("input", inputArray);
logicIfon.Add("output", outputArray);
logicjArray.Add(logicIfon);
var jObject = new JObject { { "homeId", homeId }, { "logics", logicjArray } };
responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update);
}
catch (Exception e)
{
var dd = e.Message;
}
return responsePackNew;
}
///
/// 删除逻辑
///
///
public static ResponsePackNew delLogic(Logic logic)
{
var jArray = new JArray { };
jArray.Add(logic.userLogicId);
var jObject = new JObject { { "userLogicIds", jArray } };
var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Delete);
return responsePackNew;
}
///
/// 逻辑开关
///
///
public static ResponsePackNew switchLogic(Logic logic)
{
var jArray = new JArray { };
var job = new JObject { { "userLogicId", logic.userLogicId } , { "enable", logic.enable } };
jArray.Add(job);
var jObject = new JObject { { "logics", jArray } };
var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Enable);
return responsePackNew;
}
///
///请求服务器(与住宅有关:例如;homeId)
///
///
public static ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 10)
{
var requestJson = HttpUtil.GetSignRequestJson(o);
return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout);
}
///
/// 请求服务器
///
///
public static ResponsePackNew RequestServer(object o, string api_Url)
{
var requestJson = HttpUtil.GetSignRequestJson(o);
return HttpUtil.RequestHttpsPost(api_Url, requestJson);
}
}
}