From fe2b566c8d9c097d2568ad211088fa5bc6f8c229 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期二, 23 三月 2021 13:48:25 +0800
Subject: [PATCH] 2.增加住宅绑定网关判断,没有绑定网关的住宅,ON+不再显示

---
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs |  152 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 123 insertions(+), 29 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
index f0565fd..e65cb76 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
@@ -8,6 +8,38 @@
 {
     public class Method
     {
+        /// <summary>
+        /// 绾㈠瀹濈▼搴忎富鍏ュ彛
+        /// </summary>
+        /// <param name="frame"></param>
+        /// <param name="function"></param>
+        public void MainView(FrameLayout frame, Entity.Function function,Action action)
+        {
+
+            Pir pirDevice = new Pir();
+            if (function != null)
+            {//鏁版嵁杞崲
+                pirDevice.name = function.name;
+                pirDevice.deviceId = function.deviceId;
+                pirDevice.sid = function.sid;
+                pirDevice.online = function.online;
+            }
+            Pir.currPir = pirDevice;
+            GetControlList(frame, () =>
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    var page = new PirMain();
+                    MainPage.BasePageView.AddChidren(page);
+                    page.Show();
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                    PirMain.BackAction += () =>
+                    {
+                        action?.Invoke();
+                    };
+                });
+            }, Pir.currPir);
+        }
 
         /// <summary>
         /// 绠$悊浣嶇疆
@@ -181,11 +213,10 @@
                                 var pirJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<Pir>(str);
                                 if (pirJosn != null)
                                 {
-                                    if (null == Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
-                                    {
 
-                                        Pir.pirDeviceList.Add(pirJosn);
-
+                                    if (null == PirDevice.Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
+                                    {
+                                        PirDevice.Pir.pirDeviceList.Add(pirJosn);
                                     }
                                 }
                             }
@@ -227,7 +258,7 @@
 
         }
         /// <summary>
-        /// 鑾峰彇閬ユ帶鍣ㄥ垪琛�
+        /// 鑾峰彇鎵�鏈夌孩澶栧疂閬ユ帶鍣ㄥ垪琛�
         /// </summary>
         /// <param name="action">鍥炶皟鍑芥暟</param>
         public static void GetControlList(Action action)
@@ -242,7 +273,7 @@
                         var pirDevice = Pir.pirDeviceList[i];
                         try
                         {
-                            var responsePackNew = PirSend.ControlList(pirDevice);
+                            var responsePackNew = PirSend.ControlList(pirDevice.deviceId);
                             if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                             {
                                 var jArray = JArray.Parse(responsePackNew.Data.ToString());
@@ -282,6 +313,34 @@
             { IsBackground = true }.Start();
 
         }
+
+        /// <summary>
+        /// 鑾峰彇鍗曚釜绾㈠瀹濋仴鎺у櫒鍒楄〃
+        /// </summary>
+        /// <param name="action">鍥炶皟鍑芥暟</param>
+        public static void GetControlList(FrameLayout frame, Action action, Pir pirDevice)
+        {
+            ThreadSend(new Control { deviceId = pirDevice.deviceId }, (responsePackNew) =>
+             {
+                 var jArray = JArray.Parse(responsePackNew.Data.ToString());
+                 for (int a = 0; a < jArray.Count; a++)
+                 {
+                     var jay = jArray[a];
+                     //鏁版嵁杩斿簭鍒楀寲涓篖ogic瀵硅薄
+                     var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
+                     var pirJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.Function>(str);
+                     if (pirJosn != null)
+                     {
+                         if (null == pirDevice.FunctioList.Find((c) => c.deviceId == pirJosn.deviceId))
+                         {
+                             pirDevice.FunctioList.Add(pirJosn);
+                         }
+                     }
+                 }
+                 action();
+             }, "鑾峰彇閬ユ帶鍣ㄥ垪琛�", "frame", frame, null);
+
+        }
         /// <summary>
         /// 鑾峰彇璁惧璇︽儏閫氳繃(spk,sid)
         /// </summary>
@@ -290,21 +349,61 @@
         /// <param name="action">鍥炶皟鍑芥暟</param>
         public void GetControl(FrameLayout frame, Control control, Action<Entity.Function> action)
         {
-            Entity.Function function = null;
+            ThreadSend(control, (responsePackNew) =>
+            {
+                var function = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.Function>(responsePackNew.Data.ToString());
+                action(function);
+            }, "鑾峰彇璁惧璇︽儏", "frame", frame, null);
+        }
+        /// <summary>
+        /// 鍙戦�佸懡浠ょ嚎绋�
+        /// </summary>
+        /// <param name="control">鍙戦�佹暟鎹璞�</param>
+        /// <param name="action">鍥炶皟鍑芥暟</param>
+        /// <param name="str">鍒ゆ柇瀛楃</param>
+        /// <param name="view">鍒ゆ柇log鐖舵帶浠�</param>
+        /// <param name="frame">log鐖舵帶浠�</param>
+        /// <param name="dialog">log鐖舵帶浠�</param>
+        public static void ThreadSend(Control control, Action<ResponsePackNew> action, string str,string view, FrameLayout frame, Dialog dialog)
+        {
+           
             //鍔犺浇log
             Loading loading = new Loading();
-            frame.AddChidren(loading);
+            if (view == "dialog")
+            {
+                dialog.AddChidren(loading);
+            }
+            else
+            {
+                frame.AddChidren(loading);
+            }
             loading.Start();
+            ResponsePackNew responsePackNew = null;
             new System.Threading.Thread(() =>
             {
                 try
                 {
-                    // 鑾峰彇璁惧璇︽儏閫氳繃(spk,sid)
-                    var responsePackNew = PirSend.GetinfoBySid(control);
-                    if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
+                    if (str == "鍒犻櫎")
                     {
-                        //var str = Newtonsoft.Json.JsonConvert.SerializeObject(responsePackNew.Data.ToString());
-                        function = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.Function>(responsePackNew.Data.ToString());
+                        responsePackNew = PirSend.DeleteDevice(control.deviceId);
+                    }
+                    else if (str == "淇敼鍚嶇О")
+                    {
+
+                        responsePackNew = PirSend.DeviceRename(control.deviceId, control.name);
+                    }
+                    else if (str == "鍒犻櫎鎸夐敭")
+                    {
+                        // responsePackNew = PirSend.CodeRemove(control.deviceId, control.name);
+                    }
+                    else if (str == "鑾峰彇璁惧璇︽儏")
+                    {
+                        // 鑾峰彇璁惧璇︽儏閫氳繃(spk,sid)
+                        responsePackNew = PirSend.GetinfoBySid(control);
+                    }
+                    else if (str == "鑾峰彇閬ユ帶鍣ㄥ垪琛�")
+                    {
+                        responsePackNew = PirSend.ControlList(control.deviceId);
                     }
                 }
                 catch { }
@@ -313,29 +412,24 @@
                     Application.RunOnMainThread(() =>
                     {
                         loading.Hide();
-                        action(function);
+                        if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
+                        {
+                            action(responsePackNew);
+                        }
+                        else
+                        {
+                            Method method = new Method();
+                            method.ErrorShow(responsePackNew, "");
+                        }
+
                     });
                 }
 
             })
             { IsBackground = true }.Start();
-        }
-        /// <summary>
-        /// 鍙戦�佸懡浠ょ嚎绋�
-        /// </summary>
-        /// <param name="control">鍙戦�佹暟鎹璞�</param>
-        /// <param name="action">鍥炶皟鍑芥暟</param>
-        /// <param name="str">鍒ゆ柇瀛楃</param>
-        /// <param name="frame">log鐖舵帶浠�</param>
-        /// <param name="dialog">log鐖舵帶浠�</param>
-        public void ThreadSend(Control control, Action<HDL_ON.DAL.Server.ResponsePackNew> action, string str, FrameLayout frame, Dialog dialog)
-        {
-
 
 
         }
-
-
         /// <summary>
         /// MQTT涓婚鎺ㄩ�佷笅鏉ョ殑閬ユ帶鍣ㄦ暟鎹�
         /// </summary>
@@ -367,7 +461,7 @@
                     str = buttondata;
                 }
 
-                if (!string.IsNullOrEmpty(controldata))
+                if (!string.IsNullOrEmpty(str))
                 {
                     try
                     {

--
Gitblit v1.8.0