From 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 21 七月 2020 09:46:53 +0800
Subject: [PATCH] 请合并最新多功能面板代码

---
 ZigbeeApp/Shared/Phone/Device/Logic/Send.cs |  138 ++++++++++++++++++++++++++++++++++++----------
 1 files changed, 108 insertions(+), 30 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
old mode 100755
new mode 100644
index c2fa1b9..5959afd
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
@@ -7,6 +7,7 @@
 using System.Collections.Specialized;
 using System.Net;
 using System.IO;
+using System.Diagnostics.CodeAnalysis;
 
 namespace Shared.Phone.Device.Logic
 {
@@ -22,6 +23,7 @@
             return await System.Threading.Tasks.Task.Run(async () =>
             {
                 List<int> logicIdList = new List<int>();
+
                 Action<string, string> action = (topic, data) =>
                 {
                     var gatewayID = topic.Split('/')[0];
@@ -43,6 +45,7 @@
                         {
                             var logicId = int.Parse(listIfon["LogicId"].ToString());
                             logicIdList.Add(logicId);
+
                         }
 
                     }
@@ -54,11 +57,17 @@
                     return logicIdList;
                 }
                 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());
+                try
+                {
+                    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());
+                }
+                catch (Exception e)
+                {
+                    var d = e.Message;
+                }
                 //await System.Threading.Tasks.Task.Run(async () =>
                 //{
                 var dateTime = DateTime.Now;
@@ -175,7 +184,7 @@
             });
         }
         ///<summary>
-        /// 鍒犻櫎閫昏緫
+        /// 鍒犻櫎閫昏緫(0鎴愬姛,鍏跺畠鍊�:澶辫触)
         /// </summary>
         public static async System.Threading.Tasks.Task<int> DelLogic(int LogicId)
         {
@@ -292,6 +301,7 @@
                                     ["RemindTime"] = int.Parse(dictionary["RemindTime"]),
                                     ["EnDelay"] = int.Parse(dictionary["EnDelay"]),
                                     ["DelayTime"] = int.Parse(dictionary["DelayTime"]),
+                                    ["DoorLockOpenDelayTime"] = int.Parse(dictionary["DoorLockOpenDelayTime"]),
                                 };
                                 if (dictionary["DateType"].ToString() == "0")
                                 {
@@ -462,6 +472,16 @@
                                 };
                                 actions.Add(timeInfo);
                                 break;
+                            case 8:
+                                var lockInfo = new JObject
+                                {
+                                    ["LinkType"] = int.Parse(dictionary["LinkType"].ToString()),
+                                    ["DeviceAddr"] = dictionary["DeviceAddr"].ToString(),
+                                    ["Epoint"] = int.Parse(dictionary["Epoint"].ToString()),
+                                    ["PassData"] = dictionary["PassData"].ToString(),
+                                };
+                                actions.Add(lockInfo);
+                                break;
                         }
                     }
                     var accounts = new JArray();
@@ -480,8 +500,18 @@
                                             ["Type"] = int.Parse(dictionary["Type"]),
                                             ["Account"] = dictionary["Account"],
                                             ["UserId"] = dictionary["UserId"],
+                                            ["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);
                                     }
                                 }
@@ -500,9 +530,28 @@
                                     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;
                         }
 
                     }
+
                     var data = new JObject{
                         { "LogicId",logic.LogicId},
                         { "IsEnable", logic.IsEnable} ,
@@ -697,7 +746,7 @@
                 }
                 catch { }
                 var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 8 * 1000)
+                while ((DateTime.Now - dateTime).TotalMilliseconds < 5 * 1000)
                 {
                     await System.Threading.Tasks.Task.Delay(100);
                     if (sum == listLogic.Count)
@@ -825,9 +874,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++)
                 {
 
@@ -917,7 +976,7 @@
         {
             string s = null;
             var str = await WebClientAsync(0, CommonPage.RequestHttpsHost + "/App/GetHomePager");//涓嶅悓鍖哄煙鍩熷悕鍓嶇紑涓嶄竴鏍�
-                                                                                                 // var str = await WebClientAsync(0, "https://global.hdlcontrol.com/HangZhouHdlCloudApi/App/GetHomePager");
+
             var jObject = JObject.Parse(str);
             if (jObject == null || jObject["StateCode"].ToString() != "Success")
             {
@@ -942,13 +1001,11 @@
                         residential.IsOtherAccountCtrl = true;
                         residential.doorlockmac = doorlockMac;
                         residential.Url = CommonPage.RequestHttpsHost + "/App/GetSharedHomeApiControl";
-                        //residential.Url = "https://global.hdlcontrol.com/HangZhouHdlCloudApi/App/GetSharedHomeApiControl";
                         s = await ReadUserDoorLock(residential);
                     }
                     else
                     {
                         residential.Url = CommonPage.RequestHttpsHost + "/DoorLock/GetDoorLockPager";
-                        //residential.Url = "https://global.hdlcontrol.com/HangZhouHdlCloudApi/DoorLock/GetDoorLockPager";
                         residential.Token = Config.Instance.Token;
                         residential.Id = Config.Instance.HomeId;
                         residential.IsOtherAccountCtrl = false;
@@ -981,7 +1038,7 @@
             lockifon.doorlockmac = residential.doorlockmac;
             return await WebClientAsync(2, lockifon.Url, lockifon);
         }
-      
+
         public class Residential
         {
             /// <summary>
@@ -1097,6 +1154,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)
@@ -1173,33 +1238,46 @@
         /// <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();
-            }
-            //鍙戦�佽姹傚苟鑾峰彇鐩稿簲鍥炲簲鏁版嵁       
-            HttpWebResponse res;
             try
             {
-                res = (HttpWebResponse)request.GetResponse();
+                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;
             }
-            catch (WebException ex)
+            catch
             {
-                res = (HttpWebResponse)ex.Response;
+                return null;
             }
-            StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8);
-            string content = sr.ReadToEnd(); //鑾峰緱鍝嶅簲瀛楃涓�
-            return content;
+
         }
         /// <summary>
         /// 璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶

--
Gitblit v1.8.0