From 0f5a53c7b36c27a0f2bec12e6119207edb6860f8 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期二, 29 十月 2019 14:29:21 +0800 Subject: [PATCH] 修改主页卡死问题 --- ZigbeeApp/Shared/Phone/Device/Logic/Send.cs | 156 +++++++++++++++++++++++++++++---------------------- 1 files changed, 88 insertions(+), 68 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs index 348124f..4c72631 100755 --- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs @@ -14,7 +14,7 @@ /// 鑾峰彇LogicId鐨勬柟娉� /// </summary> /// <returns>The logic identifier.</returns> - public static async System.Threading.Tasks.Task<List<int>> GetLogicId() + public static async System.Threading.Tasks.Task<List<int>> GetLogicId(int LogicType) { return await System.Threading.Tasks.Task.Run(async () => { @@ -53,6 +53,8 @@ mainGateWay.GwResDataAction += action; var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2004 } }; + var jObjectdata1 = new JObject { { "LogicType", LogicType } }; + jObject.Add("Data", jObjectdata1); mainGateWay?.Send("Logic/GetLogicList", jObject.ToString()); //await System.Threading.Tasks.Task.Run(async () => //{ @@ -74,7 +76,7 @@ /// 鑾峰彇Logic鐨勬柟娉� /// </summary> /// <returns>The logic identifier.</returns> - public static async System.Threading.Tasks.Task<Common.Logic> GetLogic(int LogicId) + public static async System.Threading.Tasks.Task<Common.Logic> GetLogic(int LogicId, int LogicType) { return await System.Threading.Tasks.Task.Run(async () => { @@ -149,7 +151,8 @@ { var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2002 } }; var data = new JObject { - { "LogicId",LogicId} + { "LogicId",LogicId}, + { "LogicType",LogicType} }; jObject.Add("Data", data); ZbGateway.MainGateWay?.Send("Logic/GetLogicInfo", jObject.ToString()); @@ -449,13 +452,26 @@ } } var accounts = new JArray(); - foreach (var dictionary in logic.Accounts) { + foreach (var dictionary in logic.Accounts) + { var Type = int.Parse(dictionary["Type"]); switch (Type) { - case 1: { + case 1: + { /// - } break; + if (logic.LogicType == 1) + { + var accounts1 = new JObject + { + ["Type"] = int.Parse(dictionary["Type"]), + ["Account"] = dictionary["Account"], + + }; + accounts.Add(accounts1); + } + } + break; case 7: { var location = new JObject @@ -478,6 +494,7 @@ { "IsEnable", logic.IsEnable} , { "LogicName", logic.LogicName}, { "Relationship",logic.Relationship} , + { "LogicType",logic.LogicType} , { "LogicCustomPushText",logic.LogicCustomPushText} , { "TimeAttribute", timeAttribute} , { "Conditions", conditions }, @@ -566,13 +583,13 @@ /// 鑾峰彇Logic鍒楄〃鐨勬柟娉� /// </summary> /// <returns>The logic identifier.</returns> - public static async System.Threading.Tasks.Task<List<Common.Logic>> ReadList(int sum) + public static async System.Threading.Tasks.Task<List<Common.Logic>> ReadList(int sum, int LogicType) { return await System.Threading.Tasks.Task.Run(async () => { - var listLogic = new List<Common.Logic>(); - bool @bool = false; + var listLogic = new List<Common.Logic>(); + // bool @bool = false; Action<string, string> action = (topic, data) => { var gatewayID = topic.Split('/')[0]; @@ -590,6 +607,7 @@ logic.LogicId = int.Parse(Logicifon["LogicId"].ToString()); logic.IsEnable = int.Parse(Logicifon["IsEnable"].ToString()); logic.LogicName = Logicifon["LogicName"].ToString(); + logic.LogicType = int.Parse(Logicifon["LogicType"].ToString()); logic.Relationship = int.Parse(Logicifon["Relationship"].ToString()); logic.TimeAttribute = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.TimeAttributeObj>(Logicifon["TimeAttribute"].ToString()); logic.Conditions = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(Logicifon["Conditions"].ToString()); @@ -639,10 +657,10 @@ } } - if (topic == $"{gatewayID}/Logic/AllLogicNum_Respon") - { - @bool = true; - } + //if (topic == $"{gatewayID}/Logic/AllLogicNum_Respon") + //{ + // @bool = true; + //} }; var mainGateWay = ZbGateway.MainGateWay; if (mainGateWay == null) @@ -654,6 +672,8 @@ try { var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2015 } }; + var jObjectdata = new JObject { { "LogicType", LogicType } }; + jObject.Add("Data", jObjectdata); ZbGateway.MainGateWay?.Send("Logic/GetAllLogicListInfo", jObject.ToString()); } catch { } @@ -661,14 +681,14 @@ while ((DateTime.Now - dateTime).TotalMilliseconds < 8 * 1000) { await System.Threading.Tasks.Task.Delay(100); - //if (sum == listLogic.Count) - //{ - // break; - //} - if (@bool) + if (sum == listLogic.Count) { break; } + //if (@bool) + //{ + // break; + //} } ZbGateway.MainGateWay.GwResDataAction -= action; return listLogic; @@ -700,57 +720,57 @@ System.Collections.Specialized.NameValueCollection postValues = new System.Collections.Specialized.NameValueCollection(); postValues.Add("RequestVersion", CommonPage.RequestVersion); postValues.Add("ReqDto.LoginAccessToken", Config.Instance.Token); - System.Threading.Tasks.Task.Run(() => - { - try - { - - byte[] responseArray = webClient.UploadValues(url, postValues); - var str = System.Text.Encoding.UTF8.GetString(responseArray); - var jObject = JObject.Parse(str); - if (jObject == null || jObject["StateCode"].ToString() != "Success") - { - return; - } - var pageData = jObject["ResponseData"]["PageData"].ToString(); - var datalist = JArray.Parse(pageData); - for (int i = 0; i < datalist.Count; i++) - { - var data = JObject.Parse(datalist[i].ToString()); - if (Config.Instance.HomeId == data["Id"].ToString()) - { - Residential residential = new Residential(); - - if (Convert.ToBoolean(data["IsOthreShare"].ToString())) - { + System.Threading.Tasks.Task.Run(() => + { + try + { + + byte[] responseArray = webClient.UploadValues(url, postValues); + var str = System.Text.Encoding.UTF8.GetString(responseArray); + var jObject = JObject.Parse(str); + if (jObject == null || jObject["StateCode"].ToString() != "Success") + { + return; + } + var pageData = jObject["ResponseData"]["PageData"].ToString(); + var datalist = JArray.Parse(pageData); + for (int i = 0; i < datalist.Count; i++) + { + var data = JObject.Parse(datalist[i].ToString()); + if (Config.Instance.HomeId == data["Id"].ToString()) + { + Residential residential = new Residential(); + + if (Convert.ToBoolean(data["IsOthreShare"].ToString())) + { //鍒嗕韩鑰匢D residential.Id = data["Id"].ToString(); //鏄惁鏄垎浜处鍙穂true(鏄垎浜�);false;(涓嶆槸鍒嗕韩)]; residential.IsOthreShare = Convert.ToBoolean(data["IsOthreShare"].ToString()); //鍒嗕韩鑰呬綇瀹匢D - residential.MainUserDistributedMark = data["MainUserDistributedMark"].ToString(); - residential.IsOtherAccountCtrl = true; - residential.doorlockmac = doorlockMac; - list = ReadToken(residential); - } - else - { - residential.Url = "https://global.hdlcontrol.com/HangZhouHdlCloudApi/DoorLock/GetDoorLockPager"; - residential.Token = Config.Instance.Token; - residential.Id = Config.Instance.HomeId; - residential.IsOtherAccountCtrl = false; - residential.doorlockmac = doorlockMac; - list = ReadDoorLock(residential); - - } - } - - } - } - catch { } - }); + residential.MainUserDistributedMark = data["MainUserDistributedMark"].ToString(); + residential.IsOtherAccountCtrl = true; + residential.doorlockmac = doorlockMac; + list = ReadToken(residential); + } + else + { + residential.Url = "https://global.hdlcontrol.com/HangZhouHdlCloudApi/DoorLock/GetDoorLockPager"; + residential.Token = Config.Instance.Token; + residential.Id = Config.Instance.HomeId; + residential.IsOtherAccountCtrl = false; + residential.doorlockmac = doorlockMac; + list = ReadDoorLock(residential); + + } + } + + } + } + catch { } + }); var datetime = DateTime.Now; - while ((DateTime.Now - datetime).TotalMilliseconds < 3*1000) + while ((DateTime.Now - datetime).TotalMilliseconds < 3 * 1000) { if (list.Count != 0) { @@ -809,7 +829,7 @@ public static List<DoorLock> ReadDoorLock(Residential lockifon) { List<DoorLock> list = new List<DoorLock>(); - System.Net.WebClient webClient = new System.Net.WebClient(); + System.Net.WebClient webClient = new System.Net.WebClient(); System.Collections.Specialized.NameValueCollection postValues = new System.Collections.Specialized.NameValueCollection(); postValues.Add("RequestVersion", CommonPage.RequestVersion); postValues.Add("LoginAccessToken", lockifon.Token); @@ -889,13 +909,13 @@ public class MembershipIfon { public string MembershipId = string.Empty; - public List<string> UserIdMode=new List<string>(); + public List<string> UserIdMode = new List<string>(); public string MembershipName = string.Empty; } - public static List<MembershipIfon> UserList = new List<MembershipIfon>(); - - + public static List<MembershipIfon> UserList = new List<MembershipIfon>(); + + #endregion } } -- Gitblit v1.8.0