From 652243206427f35a256400a149a1734085824cb9 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期三, 02 九月 2020 17:35:03 +0800 Subject: [PATCH] 2020-09-02-4 --- ZigbeeApp/Shared/Phone/Device/Logic/Send.cs | 193 ++++++++++++++++++++++++++++++++++-------------- 1 files changed, 136 insertions(+), 57 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs old mode 100644 new mode 100755 index 8c89431..1f50bbe --- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs @@ -12,6 +12,7 @@ { public class Send { + #region ----Logic鎵�鏈夊彂閫佸懡浠� /// <summary> /// 鑾峰彇LogicId鐨勬柟娉� @@ -22,6 +23,9 @@ return await System.Threading.Tasks.Task.Run(async () => { List<int> logicIdList = new List<int>(); + + bool if_theme = false; + int if_number = -1; Action<string, string> action = (topic, data) => { var gatewayID = topic.Split('/')[0]; @@ -30,21 +34,22 @@ { return; } - + if (topic == $"{gatewayID}/Logic/GetLogicList_Respon") { - - var list = jObjectdata["Data"]["LogicList"]; - if (list == null) + if_theme = true; + var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jObjectdata["Data"]["LogicList"].ToString()); + if_number = list.Count; + if (list.Count == 0) { return; } foreach (var listIfon in list) { - var logicId = int.Parse(listIfon["LogicId"].ToString()); + var logicId = int.Parse(listIfon["LogicId"]); logicIdList.Add(logicId); + } - } }; var mainGateWay = ZbGateway.MainGateWay; @@ -70,9 +75,13 @@ while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000) { await System.Threading.Tasks.Task.Delay(100); - if (logicIdList.Count != 0) + if (if_theme) { - break; + if (if_number == 0 || if_number == logicIdList.Count) + { + break;//鍥炲娌℃湁鏁版嵁绔嬪埢杩斿洖 + } + } } ZbGateway.MainGateWay.GwResDataAction -= action; @@ -101,7 +110,6 @@ if (topic == $"{gatewayID}/Logic/GetLogicInfo_Respon") { - logic = new Common.Logic(); var Logicifon = jObjectdata["Data"]; logic.LogicId = int.Parse(Logicifon["LogicId"]?.ToString()); @@ -180,7 +188,7 @@ }); } ///<summary> - /// 鍒犻櫎閫昏緫 + /// 鍒犻櫎閫昏緫(0鎴愬姛,鍏跺畠鍊�:澶辫触) /// </summary> public static async System.Threading.Tasks.Task<int> DelLogic(int LogicId) { @@ -246,7 +254,6 @@ { try { - Logicifon = new Common.Logic(); Logicifon = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Logic>(jObjectdata["Data"].ToString()); } catch (Exception ex) @@ -499,6 +506,15 @@ ["AccountName"] = dictionary["AccountName"], }; + + if (dictionary.ContainsKey("Option4")) + { + accounts1.Add("Option4",dictionary["Option4"]); + } + if (dictionary.ContainsKey("Option2")) + { + accounts1.Add("Option2", int.Parse(dictionary["Option2"])); + } accounts.Add(accounts1); } } @@ -515,6 +531,24 @@ }; accounts.Add(location); + } + break; + case 8: + { + var accounts1 = new JObject(); + if (dictionary.ContainsKey("Type")) + { + accounts1.Add("Type", int.Parse(dictionary["Type"])); + } + if (dictionary.ContainsKey("Option4")) + { + accounts1.Add("Option4", dictionary["Option4"]); + } + if (dictionary.ContainsKey("Option2")) + { + accounts1.Add("Option2", int.Parse(dictionary["Option2"])); + } + accounts.Add(accounts1); } break; } @@ -623,7 +657,6 @@ { var listLogic = new List<Common.Logic>(); - // bool @bool = false; Action<string, string> action = (topic, data) => { var gatewayID = topic.Split('/')[0]; @@ -635,7 +668,6 @@ if (topic == $"{gatewayID}/Logic/GetAllLogicListInfo_Respon") { - var logic = new Common.Logic(); var Logicifon = jObjectdata["Data"]; logic.LogicId = int.Parse(Logicifon["LogicId"].ToString()); @@ -694,10 +726,7 @@ } } - //if (topic == $"{gatewayID}/Logic/AllLogicNum_Respon") - //{ - // @bool = true; - //} + }; var mainGateWay = ZbGateway.MainGateWay; if (mainGateWay == null) @@ -722,10 +751,6 @@ { break; } - //if (@bool) - //{ - // break; - //} } ZbGateway.MainGateWay.GwResDataAction -= action; return listLogic; @@ -775,7 +800,7 @@ while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000) { await System.Threading.Tasks.Task.Delay(100); - if (sceneui != null) + if (sceneui != null && sceneui.Id > 0) { break; } @@ -843,9 +868,19 @@ { //鏈嶅姟杩斿洖鏉ユ病鏈夐棬閿佹垚鍛樹俊鎭紝娌℃湁蹇呰鍐嶅幓璇锋眰鎴愬憳鍒楄〃锛� //鍘熷洜锛氳妭绾︽椂闂达紝浣撻獙鏁堟灉濂斤紱 - result = await UserCenter.UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra); + result = UserCenter.UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra); + } + if (string.IsNullOrEmpty(result)) + { + //闃叉涓虹┖鎶涘紓甯革紱 + return userlist; } - var listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UserCenter.MemberInfoRes>>(result); + var listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UserCenter.MemberInfoRes>>(result); + if (listInfo == null) + { + //闃叉涓虹┖鎶涘紓甯革紱 + return userlist; + } for (int i = 0; i < listInfo.Count; i++) { @@ -1113,6 +1148,14 @@ /// <param name="logic">閫昏緫瀵硅薄</param> public static void Zj(bool tag, Common.Logic logic) { + + if (string.IsNullOrEmpty(logic.LogicCustomPushText)) + { + ///榛樿鎺ㄩ�佽嚜瀹氫箟鍐呭 + string str = logic.LogicName + Language.StringByID(R.MyInternationalizationString.defaulttext); + logic.LogicCustomPushText = str; + } + new System.Threading.Thread(() => { if (logic.LogicId != 0) @@ -1189,33 +1232,45 @@ /// <param name="method">璇锋眰鏂瑰紡涓篜OST/GET</param> /// <param name="second">瓒呮椂鏃堕棿</param> /// <returns></returns> - public static async System.Threading.Tasks.Task<string> HttpWebRequest(string getUrl, string str, string method, int second = 3) + public static async System.Threading.Tasks.Task<string> HttpWebRequest(string getUrl, string str, string method, int second = 3, bool _bool = false) { - HttpWebRequest request = WebRequest.Create(getUrl) as HttpWebRequest; //鍒涘缓璇锋眰 - request.Method = method; //璇锋眰鏂瑰紡涓篜OST/GET - request.ContentType = "application/json"; - request.Timeout = second * 1000;//瓒呮椂鏃堕棿 - if (method == "POST") - { - byte[] jsonbyte = System.Text.Encoding.UTF8.GetBytes(str); - request.ContentLength = jsonbyte.Length; - Stream postStream = request.GetRequestStream(); - postStream.Write(jsonbyte, 0, jsonbyte.Length); - postStream.Close(); + try + { + HttpWebRequest request = WebRequest.Create(getUrl) as HttpWebRequest; //鍒涘缓璇锋眰 + request.Method = method; //璇锋眰鏂瑰紡涓篜OST/GET + request.ContentType = "application/json"; + request.Timeout = second * 1000;//瓒呮椂鏃堕棿 + if (_bool) + { + //鐢ㄤ簬楂樿儨鍙瀵硅鎺ュ彛 + request.Headers.Add("Authorization", Config.Instance.Token); + } + if (method == "POST") + { + byte[] jsonbyte = System.Text.Encoding.UTF8.GetBytes(str); + request.ContentLength = jsonbyte.Length; + Stream postStream = request.GetRequestStream(); + postStream.Write(jsonbyte, 0, jsonbyte.Length); + postStream.Close(); + } + //鍙戦�佽姹傚苟鑾峰彇鐩稿簲鍥炲簲鏁版嵁 + HttpWebResponse res; + try + { + res = (HttpWebResponse)request.GetResponse(); + } + catch (WebException ex) + { + res = (HttpWebResponse)ex.Response; + } + StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8); + string content = sr.ReadToEnd(); //鑾峰緱鍝嶅簲瀛楃涓� + return content; } - //鍙戦�佽姹傚苟鑾峰彇鐩稿簲鍥炲簲鏁版嵁 - HttpWebResponse res; - try - { - res = (HttpWebResponse)request.GetResponse(); + catch + { + return null; } - catch (WebException ex) - { - res = (HttpWebResponse)ex.Response; - } - StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8); - string content = sr.ReadToEnd(); //鑾峰緱鍝嶅簲瀛楃涓� - return content; } /// <summary> /// 璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶 @@ -1265,6 +1320,23 @@ #region 瀛樺彇鏈湴鏂囦欢鐨勬柟娉� ---鏆傛椂涓嶇敤鍚堝苟璇ユ柟娉�--- /// <summary> + /// 鍒ゆ柇鏄惁寮�鍚疓PS鏈嶅姟 + /// </summary> + public static string If_Exist + { + get + { + string value = ReadLocalFile(Config.Instance.HomeId+"_GPS_File"); + //璇诲彇鏈湴GPS鏈嶅姟鐘舵�� + if (value == "0"||string.IsNullOrEmpty(value)) + { + return "0"; + } + return "1"; + } + + } + /// <summary> /// 鏂囦欢淇濆瓨 /// </summary> /// <param name="FileName">鏂囦欢璺緞</param> @@ -1278,7 +1350,19 @@ //鍐欏叆鏁版嵁锛� Shared.IO.FileUtils.WriteFileByBytes(FileName, byteData); } - + /// <summary> + /// 鏂囦欢淇濆瓨 + /// </summary> + /// <param name="FileName">鏂囦欢璺緞</param> + /// <param name="data">瀛楃涓�</param> + public static void SaveLocalFile(string FileName, string data) + { + //鍏堝簭鍒楀寲鏁版嵁锛� + //鏁版嵁杞崲涓哄瓧鑺傛祦锛� + var byteData = System.Text.Encoding.UTF8.GetBytes(data); + //鍐欏叆鏁版嵁锛� + Shared.IO.FileUtils.WriteFileByBytes(FileName, byteData); + } /// <summary> /// 鏂囦欢璇诲彇 /// </summary> @@ -1286,11 +1370,6 @@ /// <returns></returns> public static string ReadLocalFile(string FileName) { - if (System.IO.File.Exists(FileName) == false) - { - ///鍒ゆ柇鏄惁鏈夋枃浠�; - return null; - } //璇诲嚭淇濆瓨璇ヨ矾寰勭殑鏂囦欢锛� var varByte = Shared.IO.FileUtils.ReadFile(FileName); //瀛楄妭娴佽浆鎹负瀛楃涓诧紱 @@ -1302,8 +1381,8 @@ /// 鍒ゆ柇瀛楀吀鏄惁瀛樺湪鐨勬柟娉� /// </summary> /// <param name="deviceConditionsInfo"></param> - /// <param name="Key"></param> - /// <param name="Value"></param> + /// <param name="Key">閿�</param> + /// <param name="Value">閿��</param> public static void dictionary(Dictionary<string, string> deviceConditionsInfo, string Key, string Value) { if (deviceConditionsInfo.ContainsKey(Key)) @@ -1313,6 +1392,6 @@ deviceConditionsInfo.Add(Key, Value); } - + } } -- Gitblit v1.8.0