| | |
| | | using System; |
| | | using System; |
| | | using System.IO; |
| | | using System.Net; |
| | | using HDL_ON.DAL.Server; |
| | |
| | | |
| | | namespace HDL_ON.UI.UI2.Intelligence.Automation |
| | | { |
| | | public class Send |
| | | public class Send |
| | | { |
| | | ///// <summary> |
| | | ///// 住宅ID |
| | | ///// </summary> |
| | | //public static string homeId = Entity.DB_ResidenceData.residenceData.CurReginID; |
| | | ///// <summary> |
| | | ///// 网关ID |
| | | ///// </summary> |
| | | //public static string gatewayId = DriverLayer.Control.Ins.GatewayId; |
| | | |
| | | /// <summary> |
| | | /// 住宅ID |
| | | /// </summary> |
| | | public static string homeId = "1333723044544233473"; |
| | | /// <summary> |
| | | /// 网关ID |
| | | /// </summary> |
| | | public static string gatewayId = "1333723647223775233"; |
| | | ///// <summary> |
| | | ///// 获取逻辑ID列表 |
| | | ///// </summary> |
| | | ///// <returns></returns> |
| | | //public const string getLogicId = "获取逻辑ID"; |
| | | ///// <summary> |
| | | ///// 获取逻辑 |
| | | ///// </summary> |
| | | ///// <returns></returns> |
| | | //public const string getLogic= "获取逻辑详细"; |
| | | ///// <summary> |
| | | ///// 添加自动化命令 |
| | | ///// </summary> |
| | | ///// <returns></returns> |
| | | //public const string addLogic= "添加新逻辑"; |
| | | ///// <summary> |
| | | ///// 编辑更新逻辑 |
| | | ///// </summary> |
| | | ///// <returns></returns> |
| | | //public const string updateLogic = "编辑逻辑"; |
| | | ///// <summary> |
| | | ///// 删除逻辑 |
| | | ///// </summary> |
| | | ///// <returns></returns> |
| | | //public const string delLogic = "删除逻辑"; |
| | | ///// <summary> |
| | | ///// 逻辑开关 |
| | | ///// </summary> |
| | | ///// <returns></returns> |
| | | //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); |
| | | //} |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取逻辑ID列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew getLogicIdList() |
| | | public static ResponsePackNew GetLogicIdList() |
| | | { |
| | | var jObject = new JObject { { "homeId", homeId } }; |
| | | var jObject = new JObject { { "homeId", LogicMethod.HomeId } }; |
| | | var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_List); |
| | | //如果是token过期则刷新token |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | | { |
| | | RefreshToken(); |
| | | GetLogicIdList(); |
| | | } |
| | | return responsePackNew; |
| | | } |
| | | /// <summary> |
| | | /// 获取逻辑 |
| | | /// </summary> |
| | | /// <param name="listIdList">逻辑ID列表</param> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew getLogic(Logic logic) |
| | | public static ResponsePackNew GetLogic(List<string> listIdList) |
| | | { |
| | | var jArray = new JArray { }; |
| | | jArray.Add(logic.userLogicId); |
| | | for (int i = 0; i < listIdList.Count; i++) |
| | | { |
| | | jArray.Add(listIdList[i]); |
| | | } |
| | | var jObject = new JObject { { "userLogicIds", jArray } }; |
| | | var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Info); |
| | | //如果是token过期则刷新token |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | | { |
| | | RefreshToken(); |
| | | GetLogic(listIdList); |
| | | } |
| | | return responsePackNew; |
| | | } |
| | | /// <summary> |
| | | /// 添加自动化命令 |
| | | /// 添加自动化命令 |
| | | /// </summary> |
| | | /// <param name="logic"></param> |
| | | /// <returns></returns> |
| | |
| | | { |
| | | var outputTypeJOb = new JObject { }; |
| | | outputTypeJOb.Add("sid", dictionary.sid); |
| | | outputTypeJOb.Add("delay", dictionary.delay); |
| | | outputTypeJOb.Add("target_type", dictionary.target_type); |
| | | var statusArray = new JArray { }; |
| | | foreach (var dic in dictionary.status) |
| | |
| | | outputArray.Add(outputTypeJOb); |
| | | } |
| | | |
| | | |
| | | var noticeConfigJObject = new JObject(); |
| | | noticeConfigJObject.Add("enable", logic.noticeConfig.enable); |
| | | noticeConfigJObject.Add("noticeContent", logic.noticeConfig.noticeContent); |
| | | |
| | | var pushConfigsArray = new JArray { }; |
| | | if (logic.pushConfigs.Count > 0) |
| | | { // 推送文本 |
| | | foreach (var pushConfig in logic.pushConfigs) |
| | | { |
| | | |
| | | var pushConfigJob = new JObject { }; |
| | | pushConfigJob.Add("pushMethod", pushConfig.pushMethod); |
| | | var accountArray = new JArray { }; |
| | | foreach (var account in pushConfig.pushTarget) |
| | | { |
| | | accountArray.Add(account); |
| | | } |
| | | pushConfigJob.Add("pushTarget", accountArray); |
| | | pushConfigsArray.Add(pushConfigJob); |
| | | } |
| | | } |
| | | |
| | | var logicjArray = new JArray { }; |
| | | var logicIfon = new JObject { }; |
| | | logicIfon.Add("sid", logic.sid); |
| | | logicIfon.Add("gatewayId", gatewayId); |
| | | logicIfon.Add("gatewayId", LogicMethod.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); |
| | | logicIfon.Add("noticeConfig", noticeConfigJObject); |
| | | logicIfon.Add("pushConfigs", pushConfigsArray); |
| | | logicjArray.Add(logicIfon); |
| | | var jObject = new JObject { { "homeId", homeId }, { "logics", logicjArray } }; |
| | | responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add); |
| | | |
| | | var jObject = new JObject { { "homeId", LogicMethod.HomeId }, { "logics", logicjArray } }; |
| | | responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add,5); |
| | | //如果是token过期则刷新token |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | | { |
| | | RefreshToken(); |
| | | AddLogic(logic); |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var dd = e.Message; |
| | | } |
| | | |
| | | |
| | | return responsePackNew; |
| | | } |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | /// <param name="logic"></param> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew updateLogic(Logic logic) |
| | | public static ResponsePackNew UpdateLogic(Logic logic) |
| | | { |
| | | ResponsePackNew responsePackNew = null; |
| | | try |
| | |
| | | { |
| | | var conditionJOb = new JObject { }; |
| | | conditionJOb.Add("key", dic["key"]); |
| | | conditionJOb.Add("comparator", dic["comparator"]); |
| | | var c1 = ""; |
| | | dic.TryGetValue("comparator", out c1); |
| | | c1 = string.IsNullOrEmpty(c1) ? "" : c1; |
| | | conditionJOb.TryAdd("comparator", c1); |
| | | conditionJOb.Add("data_type", dic["data_type"]); |
| | | conditionJOb.Add("value", dic["value"]); |
| | | conditionArray.Add(conditionJOb); |
| | |
| | | { |
| | | var outputTypeJOb = new JObject { }; |
| | | outputTypeJOb.Add("sid", dictionary.sid); |
| | | outputTypeJOb.Add("delay", dictionary.delay); |
| | | outputTypeJOb.Add("target_type", dictionary.target_type); |
| | | var statusArray = new JArray { }; |
| | | foreach (var dic in dictionary.status) |
| | |
| | | outputArray.Add(outputTypeJOb); |
| | | } |
| | | |
| | | var noticeConfigJObject = new JObject(); |
| | | noticeConfigJObject.Add("enable", logic.noticeConfig.enable); |
| | | noticeConfigJObject.Add("noticeContent", logic.noticeConfig.noticeContent); |
| | | |
| | | var pushConfigsArray = new JArray { }; |
| | | if (logic.pushConfigs.Count > 0) |
| | | { |
| | | // 推送文本 |
| | | foreach (var pushConfig in logic.pushConfigs) |
| | | { |
| | | |
| | | var pushConfigJob = new JObject { }; |
| | | pushConfigJob.Add("pushMethod", pushConfig.pushMethod); |
| | | var accountArray = new JArray { }; |
| | | foreach (var account in pushConfig.pushTarget) |
| | | { |
| | | accountArray.Add(account); |
| | | } |
| | | pushConfigJob.Add("pushTarget", accountArray); |
| | | pushConfigsArray.Add(pushConfigJob); |
| | | } |
| | | } |
| | | |
| | | var logicjArray = new JArray { }; |
| | | var logicIfon = new JObject { }; |
| | | logicIfon.Add("userLogicId", logic.userLogicId); |
| | | logicIfon.Add("sid", logic.sid); |
| | | logicIfon.Add("gatewayId", gatewayId); |
| | | logicIfon.Add("gatewayId", LogicMethod.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); |
| | | logicIfon.Add("noticeConfig", noticeConfigJObject); |
| | | logicIfon.Add("pushConfigs", pushConfigsArray); |
| | | |
| | | logicjArray.Add(logicIfon); |
| | | var jObject = new JObject { { "homeId", LogicMethod.HomeId }, { "logics", logicjArray } }; |
| | | responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update,5); |
| | | //如果是token过期则刷新token |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | | { |
| | | RefreshToken(); |
| | | UpdateLogic(logic); |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var dd = e.Message; |
| | | } |
| | | |
| | | |
| | | return responsePackNew; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 删除逻辑 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew delLogic(Logic logic) |
| | | 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); |
| | | //如果是token过期则刷新token |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | | { |
| | | RefreshToken(); |
| | | DelLogic(logic); |
| | | } |
| | | return responsePackNew; |
| | | } |
| | | /// <summary> |
| | | /// <summary> |
| | | /// 逻辑开关 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew switchLogic(Logic logic) |
| | | 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); |
| | | //如果是token过期则刷新token |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | | { |
| | | RefreshToken(); |
| | | SwitchLogic(logic); |
| | | } |
| | | return responsePackNew; |
| | | } |
| | | /// <summary> |
| | | ///请求服务器(与住宅有关:例如;homeId) |
| | | ///请求服务器(与住宅有关:例如;homeId) |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 10) |
| | | public static ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 3) |
| | | { |
| | | var requestJson = HttpUtil.GetSignRequestJson(o); |
| | | return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 请求服务器 |
| | | /// </summary> |
| | |
| | | return HttpUtil.RequestHttpsPost(api_Url, requestJson); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 刷新Token |
| | | /// </summary> |
| | | public static void RefreshToken() |
| | | { |
| | | IMessageCommon.Current.StartRefreshToken(); |
| | | } |
| | | |
| | | } |
| | | } |