From 47fbfe1cd58bb82b45dfc0a5398799bd856b1fb0 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 25 十一月 2021 11:45:12 +0800 Subject: [PATCH] 2021-11-25=01 --- HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs | 760 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 379 insertions(+), 381 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs index 6019bb6..e52e8e3 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs @@ -8,408 +8,406 @@ namespace HDL_ON.UI.UI2.Intelligence.Automation { - public class Send + public class Send + { + + /// <summary> + /// 璋冪敤鑾峰彇浣忓畢瀛愯处鍙峰垪琛� + /// </summary> + public static List<ResidenceMemberInfo> GetResidenceMemberAccount() { - /// <summary> - /// 璋冪敤鑾峰彇浣忓畢瀛愯处鍙峰垪琛� - /// </summary> - public static List<ResidenceMemberInfo> GetResidenceMemberAccount() + var responePack = new HttpServerRequest().GetResidenceMemberAccount(); + if (responePack.Code == StateCode.SUCCESS) + { + return Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>>(responePack.Data.ToString()); + } + //澶辫触 + else + { + //鎻愮ず + IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code); + } + return new List<ResidenceMemberInfo>(); + } + /// <summary> + /// 鑾峰彇閫昏緫ID鍒楄〃 + /// </summary> + /// <returns></returns> + public static ResponsePackNew GetLogicIdList() + { + var jObject = new JObject { { "homeId", LogicMethod.CurrLogicMethod.HomeId } }; + var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_List); + //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken + if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) + { + RefreshToken(); + GetLogicIdList(); + } + return responsePackNew; + } + /// <summary> + /// 鑾峰彇閫昏緫 + /// </summary> + /// <param name="listIdList">閫昏緫ID鍒楄〃</param> + /// <returns></returns> + public static ResponsePackNew GetLogic(List<string> listIdList) + { + var jArray = new JArray { }; + 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); + //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken + if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) + { + RefreshToken(); + GetLogic(listIdList); + } + return responsePackNew; + } + /// <summary> + /// 娣诲姞鑷姩鍖栧懡浠� + /// </summary> + /// <param name="logic"></param> + /// <returns></returns> + 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 responePack = new HttpServerRequest().GetResidenceMemberAccount(); - if (responePack.Code == StateCode.SUCCESS) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>>(responePack.Data.ToString()); - } - //澶辫触 - else - { - //鎻愮ず - IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code); - } - return new List<ResidenceMemberInfo>(); + 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); + if (dictionary.condition_type == "8") + { + ///鍦扮悊鍥存爮 + var geo_fencejob = new JObject(); + geo_fencejob.Add("longitude", dictionary.geo_fence.longitude); + geo_fencejob.Add("latitude", dictionary.geo_fence.latitude); + geo_fencejob.Add("radius", dictionary.geo_fence.radius); + inputTypeJOb.Add("geo_fence", geo_fencejob); + } + inputArray.Add(inputTypeJOb); } - /// <summary> - /// 鑾峰彇閫昏緫ID鍒楄〃 - /// </summary> - /// <returns></returns> - public static ResponsePackNew GetLogicIdList() + var outputArray = new JArray { }; + foreach (var dictionary in logic.output) { - var jObject = new JObject { { "homeId", LogicMethod.CurrLogicMethod.HomeId } }; - var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_List); - //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken - if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) - { - RefreshToken(); - GetLogicIdList(); - } - return responsePackNew; - } - /// <summary> - /// 鑾峰彇閫昏緫 - /// </summary> - /// <param name="listIdList">閫昏緫ID鍒楄〃</param> - /// <returns></returns> - public static ResponsePackNew GetLogic(List<string> listIdList) - { - var jArray = new JArray { }; - 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); - //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken - if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) - { - RefreshToken(); - GetLogic(listIdList); - } - return responsePackNew; - } - /// <summary> - /// 娣诲姞鑷姩鍖栧懡浠� - /// </summary> - /// <param name="logic"></param> - /// <returns></returns> - 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); - if (dictionary.condition_type=="8") { - ///鍦扮悊鍥存爮 - var geo_fencejob = new JObject(); - geo_fencejob.Add("longitude", dictionary.geo_fence.longitude); - geo_fencejob.Add("latitude", dictionary.geo_fence.latitude); - geo_fencejob.Add("radius", dictionary.geo_fence.radius); - inputTypeJOb.Add("geo_fence", geo_fencejob); - } - inputArray.Add(inputTypeJOb); - } - - var outputArray = new JArray { }; - foreach (var dictionary in logic.output) - { - 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) - { - 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 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", LogicMethod.CurrLogicMethod.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", LogicMethod.CurrLogicMethod.HomeId }, { "logics", logicjArray } }; - responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add,5); - //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken - 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) - { - 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"]); - 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); - if (dictionary.condition_type == "8") - { - ///鍦扮悊鍥存爮 - var geo_fencejob = new JObject(); - geo_fencejob.Add("longitude", dictionary.geo_fence.longitude); - geo_fencejob.Add("latitude", dictionary.geo_fence.latitude); - geo_fencejob.Add("radius", dictionary.geo_fence.radius); - inputTypeJOb.Add("geo_fence", geo_fencejob); - } - } - 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("delay", dictionary.delay); - 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 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", LogicMethod.CurrLogicMethod.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", LogicMethod.CurrLogicMethod.HomeId }, { "logics", logicjArray } }; - - string str = jObject.ToString(); - responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update,5); - //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken - 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) - { - var jArray = new JArray { }; - jArray.Add(logic.userLogicId); - var jObject = new JObject { { "userLogicIds", jArray } }; - var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Delete); - //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken - if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) - { - RefreshToken(); - DelLogic(logic); - } - return responsePackNew; - } - /// <summary> - /// 閫昏緫寮�鍏� - /// </summary> - /// <returns></returns> - 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); - //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken - if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) - { - RefreshToken(); - SwitchLogic(logic); - } - return responsePackNew; + 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) + { + var statusJOb = new JObject { }; + statusJOb.Add("key", dic["key"]); + statusJOb.Add("value", dic["value"]); + statusArray.Add(statusJOb); + } + outputTypeJOb.Add("status", statusArray); + outputArray.Add(outputTypeJOb); } - /// <summary> - /// 鑷姩鍖栧湴鐞嗗洿鏍忕姸鎬佷笂鎶� - /// </summary> - /// <param name="userLogicId">鑷姩鍖栦簯绔痠d<澶囨敞锛歭ogicSid涓巙serLogicId 涓嶈兘鍚屾椂涓虹┖></param> - /// <param name="logicSid">鑷姩鍖杝id<澶囨敞锛歭ogicSid涓巙serLogicId 涓嶈兘鍚屾椂涓虹┖></param> - /// <param name="direction">arrive:鍒拌揪(杩涘叆) leave锛氱寮�</param> - /// <returns></returns> - public static bool GeoFenceStateReport(string userLogicId, string logicSid, string direction) - { - var jObject = new JObject(); - jObject.Add("homeId", LogicMethod.CurrLogicMethod.HomeId); - jObject.Add("userLogicId", userLogicId); - jObject.Add("sid", logicSid); - jObject.Add("direction", direction); - var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_GeoFenceStateReport); - //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken - if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) + 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) { - RefreshToken(); - GeoFenceStateReport(userLogicId, logicSid, direction); + accountArray.Add(account); } - if (responsePackNew.Code == "0") + pushConfigJob.Add("pushTarget", accountArray); + pushConfigsArray.Add(pushConfigJob); + } + } + + var logicjArray = new JArray { }; + var logicIfon = new JObject { }; + logicIfon.Add("sid", logic.sid); + logicIfon.Add("gatewayId", LogicMethod.CurrLogicMethod.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", LogicMethod.CurrLogicMethod.HomeId }, { "logics", logicjArray } }; + responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add, 5); + //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken + 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) + { + 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"]); + 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); + if (dictionary.condition_type == "8") { - //鎴愬姛 - return true; + ///鍦扮悊鍥存爮 + var geo_fencejob = new JObject(); + geo_fencejob.Add("longitude", dictionary.geo_fence.longitude); + geo_fencejob.Add("latitude", dictionary.geo_fence.latitude); + geo_fencejob.Add("radius", dictionary.geo_fence.radius); + inputTypeJOb.Add("geo_fence", geo_fencejob); } - //澶辫触 - return false; + } + inputTypeJOb.Add("condition", conditionArray); + inputArray.Add(inputTypeJOb); } - /// <summary> - ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� - /// </summary> - /// <returns></returns> - public static ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 3) + var outputArray = new JArray { }; + foreach (var dictionary in logic.output) { - var requestJson = HttpUtil.GetSignRequestJson(o); - return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout); + 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) + { + var statusJOb = new JObject { }; + statusJOb.Add("key", dic["key"]); + statusJOb.Add("value", dic["value"]); + statusArray.Add(statusJOb); + } + outputTypeJOb.Add("status", statusArray); + outputArray.Add(outputTypeJOb); + } - } - /// <summary> - /// 璇锋眰鏈嶅姟鍣� - /// </summary> - /// <returns></returns> - public static ResponsePackNew RequestServer(object o, string api_Url) - { - var requestJson = HttpUtil.GetSignRequestJson(o); - return HttpUtil.RequestHttpsPost(api_Url, requestJson); + var noticeConfigJObject = new JObject(); + noticeConfigJObject.Add("enable", logic.noticeConfig.enable); + noticeConfigJObject.Add("noticeContent", logic.noticeConfig.noticeContent); - } - /// <summary> - /// 鍒锋柊Token - /// </summary> - public static void RefreshToken() + var pushConfigsArray = new JArray { }; + if (logic.pushConfigs.Count > 0) { - IMessageCommon.Current.StartRefreshToken(); + //聽鎺ㄩ�佹枃鏈� + 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", LogicMethod.CurrLogicMethod.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", LogicMethod.CurrLogicMethod.HomeId }, { "logics", logicjArray } }; + + string str = jObject.ToString(); + responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update, 5); + //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken + 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) + { + var jArray = new JArray { }; + jArray.Add(logic.userLogicId); + var jObject = new JObject { { "userLogicIds", jArray } }; + var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Delete); + //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken + if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) + { + RefreshToken(); + DelLogic(logic); + } + return responsePackNew; + } + /// <summary> + /// 閫昏緫寮�鍏� + /// </summary> + /// <returns></returns> + 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); + //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken + if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) + { + RefreshToken(); + SwitchLogic(logic); + } + return responsePackNew; + } + /// <summary> + /// 鑷姩鍖栧湴鐞嗗洿鏍忕姸鎬佷笂鎶� + /// </summary> + /// <param name="userLogicId">鑷姩鍖栦簯绔痠d<澶囨敞锛歭ogicSid涓巙serLogicId 涓嶈兘鍚屾椂涓虹┖></param> + /// <param name="logicSid">鑷姩鍖杝id<澶囨敞锛歭ogicSid涓巙serLogicId 涓嶈兘鍚屾椂涓虹┖></param> + /// <param name="direction">arrive:鍒拌揪(杩涘叆) leave锛氱寮�</param> + /// <returns></returns> + public static bool GeoFenceStateReport(string userLogicId, string logicSid, string direction) + { + var jObject = new JObject(); + jObject.Add("homeId", LogicMethod.CurrLogicMethod.HomeId); + jObject.Add("userLogicId", userLogicId); + jObject.Add("sid", logicSid); + jObject.Add("direction", direction); + var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_GeoFenceStateReport); + //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken + if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) + { + RefreshToken(); + GeoFenceStateReport(userLogicId, logicSid, direction); + } + if (responsePackNew.Code == "0") + { + //鎴愬姛 + return true; + } + //澶辫触 + return false; + } + + /// <summary> + ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� + /// </summary> + /// <returns></returns> + 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> + /// <returns></returns> + public static ResponsePackNew RequestServer(object o, string api_Url) + { + var requestJson = HttpUtil.GetSignRequestJson(o); + return HttpUtil.RequestHttpsPost(api_Url, requestJson); + + } + /// <summary> + /// 鍒锋柊Token + /// </summary> + public static void RefreshToken() + { + IMessageCommon.Current.StartRefreshToken(); + } + + } } -- Gitblit v1.8.0