| | |
| | | { |
| | | public class Send |
| | | { |
| | | ///// <summary> |
| | | ///// 住宅ID |
| | | ///// </summary> |
| | | //public static string homeId = Entity.DB_ResidenceData.residenceData.CurReginID; |
| | | ///// <summary> |
| | | ///// 网关ID(秀桡有网关ID却返回是MAC) |
| | | ///// </summary> |
| | | //public static string gatewayId = DriverLayer.Control.Ins.GatewayId; |
| | | |
| | | //public static string homeId = UserInfo.Current.CurReginID; |
| | | |
| | | /// <summary> |
| | | /// 网关ID(获取嘉乐网关ID) |
| | | /// </summary> |
| | | public static string gatewayId |
| | | { |
| | | get |
| | | { |
| | | if (Entity.DB_ResidenceData.residenceData.HomeGateway == null) |
| | | { |
| | | return DriverLayer.Control.Ins.GatewayId; |
| | | } |
| | | return Entity.DB_ResidenceData.residenceData.HomeGateway.gatewayId; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 住宅ID |
| | | /// </summary> |
| | | public static string homeId = Entity.DB_ResidenceData.residenceData.residecenInfo.RegionID; |
| | | |
| | | |
| | | /// <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(); |
| | | GetLogicIdList(); |
| | | } |
| | | return responsePackNew; |
| | | } |
| | |
| | | /// </summary> |
| | | /// <param name="listIdList">逻辑ID列表</param> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew getLogic(List<string> listIdList) |
| | | public static ResponsePackNew GetLogic(List<string> listIdList) |
| | | { |
| | | var jArray = new JArray { }; |
| | | for (int i = 0; i < listIdList.Count; i++) |
| | |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | | { |
| | | RefreshToken(); |
| | | getLogic(listIdList); |
| | | 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); |
| | | 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_Update); |
| | | 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); |
| | | 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); |
| | |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | | { |
| | | RefreshToken(); |
| | | delLogic(logic); |
| | | 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 } }; |
| | |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | | { |
| | | RefreshToken(); |
| | | switchLogic(logic); |
| | | 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); |