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/AddDevice/AddMiniRemoteControlDirection4Page.cs |   98 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 85 insertions(+), 13 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
index de75ae9..ef4bf84 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
@@ -22,6 +22,10 @@
         /// </summary>
         private string wifiPsw = string.Empty;
         /// <summary>
+        /// 鏂拌澶囩殑sid(鐢ㄦ潵鍖归厤鍝竴涓澶囨槸鏂扮殑)
+        /// </summary>
+        private string newDeviceSid = string.Empty;
+        /// <summary>
         /// 瓒呮椂绾跨▼鏄惁杩愯
         /// </summary>
         private bool timeoutThreadActivity = false;
@@ -176,7 +180,7 @@
         /// <summary>
         /// 鏄剧ず鎴愬姛鐣岄潰
         /// </summary>
-        private void ShowSuccessView()
+        private void ShowSuccessView(Entity.Function newDevice)
         {
             //娓呯┖body
             this.ClearBodyFrame();
@@ -209,6 +213,29 @@
             bodyFrameLayout.AddChidren(btnUse);
             btnUse.ButtonClickEvent += (sender, e) =>
             {
+                if (newDevice == null)
+                {
+                    //鍏抽棴鎺夊叏閮ㄧ殑鐣岄潰,搴旇涓嶄細鍙戠敓
+                    HdlFormLogic.Current.CloseAllOpenForm();
+                    return;
+                }
+                var form = HdlFormLogic.Current.GetFormByName("AddMiniRemoteControlDirection1Page") as AddMiniRemoteControlDirection1Page;
+                //if (form.AddDeviceEvent != null)
+                {
+                    //浠h〃杩欎釜鏄敱娓╂�婚偅杈硅皟鐢ㄧ殑,鐩存帴鍥炶皟鍑芥暟
+                    form.AddDeviceEvent?.Invoke(newDevice);
+                    //鍏抽棴鎺夎繖涓晫闈�
+                    this.CloseForm();
+                    //鍐嶆妸AddMiniRemoteControlDirection1Page鐣岄潰鍏充簡
+                    HdlFormLogic.Current.CloseFormByFormName("AddMiniRemoteControlDirection1Page");
+                }
+                //else
+                //{
+                //    //浠h〃杩欏苟涓嶆槸鐢辨俯鎬荤殑鐣岄潰璋冪敤鐨�,鍒欏叧闂帀鍏ㄩ儴鐨勭晫闈�
+                //    HdlFormLogic.Current.CloseAllOpenForm();
+                //    //鐒跺悗鍐嶆妸娓╂�荤殑鐣岄潰new璧锋潵
+                //    new UI2.PersonalCenter.PirDevice.Method().MainView(this, newDevice,()=> { });
+                //}
             };
         }
 
@@ -298,11 +325,13 @@
                     //鏁扮粍绫诲瀷
                     if (linqArry.Count == 0) { return false; }
                     strSpk = linqArry[0]["spk"].ToString();
+                    this.newDeviceSid = linqArry[0]["sid"].ToString();
                 }
                 else
                 {
                     //闈炴暟缁勭被鍨�
                     strSpk = json["objects"]["spk"].ToString();
+                    this.newDeviceSid = json["objects"]["sid"].ToString();
                 }
                 if (strSpk != Entity.SPK.IrModule)
                 {
@@ -317,13 +346,55 @@
         /// <summary>
         /// 鍒锋柊绾㈠瀹濅俊鎭�
         /// </summary>
-        private void RefreshMiniRemoteControlInfo()
+        /// <param name="successEvent">鎴愬姛鐨勫洖璋冧簨浠�</param>
+        private void RefreshMiniRemoteControlInfo(Action<Entity.Function> successEvent)
         {
             var pra = new Dictionary<string, object>();
             pra.Add("homeId", Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID);
+            pra.Add("spk", Entity.SPK.IrModule);
 
             var requestJson = DAL.Server.HttpUtil.GetSignRequestJson(pra);
-            DAL.Server.HttpUtil.RequestHttpsPostFroHome(DAL.Server.NewAPI.Api_Post_GetDevcieList, requestJson);
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                int count = 0;
+                while (this.Parent != null)
+                {
+                    try
+                    {
+                        //瓒呰繃5娆¢兘涓嶆垚鍔�,鐪熶笉澶勭悊浜�
+                        count++;
+                        if (count > 5) { return; }
+
+                        //鑾峰彇鍏ㄩ儴绾㈠瀹濆垪琛�
+                        var result = DAL.Server.HttpUtil.RequestHttpsPostFroHome(DAL.Server.NewAPI.Api_Post_GetDevcieList, requestJson);
+                        if (result == null || result.Code != DAL.Server.StateCode.SUCCESS)
+                        {
+                            System.Threading.Thread.Sleep(3000);
+                            continue;
+                        }
+                        var listDevice = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.DevcieApiPack>(result.Data.ToString());
+                        Entity.Function newDevice = null;
+                        foreach (var newFunction in listDevice.list)
+                        {
+                            //娣诲姞鍒扮紦瀛樺綋涓�
+                            newFunction.SaveFunctionFile();
+                            Entity.FunctionList.List.IniFunctionList(newFunction.savePath, true);
+                            if (newFunction.sid == this.newDeviceSid)
+                            {
+                                //杩欎釜璁惧鏄柊杩藉姞鐨�
+                                newDevice = newFunction;
+                            }
+                        }
+                        //璋冪敤鍥炶皟鍑芥暟
+                        successEvent?.Invoke(newDevice);
+                        return;
+                    }
+                    catch
+                    {
+                        System.Threading.Thread.Sleep(3000);
+                    }
+                }
+            });
         }
 
         #endregion
@@ -343,21 +414,22 @@
                 return;
             }
             //鍒锋柊绾㈠瀹濅俊鎭�
-            this.RefreshMiniRemoteControlInfo();
+            this.RefreshMiniRemoteControlInfo((Entity.Function newDevice) =>
+            {
+                //绉婚櫎杩欎釜浜嬩欢
+                HdlCloudReceiveLogic.Current.RemoveCloudReceiveEvent("AddMiniRemoteControlDirection4Page");
+                //鍋滄绾跨▼
+                this.timeoutThreadActivity = false;
 
-            //鎺ユ敹鍒板氨绉婚櫎杩欎釜浜嬩欢
-            HdlCloudReceiveLogic.Current.RemoveCloudReceiveEvent("AddMiniRemoteControlDirection4Page");
-            //鍋滄绾跨▼
-            this.timeoutThreadActivity = false;
-
-            //娣诲姞璁惧鎴愬姛涔嬪悗,澶勭悊涓�浜涗笢瑗�
-            this.DoSomethingAfterAddDeviceSuccess();
+                //娣诲姞璁惧鎴愬姛涔嬪悗,澶勭悊涓�浜涗笢瑗�
+                this.DoSomethingAfterAddDeviceSuccess(newDevice);
+            });
         }
 
         /// <summary>
         /// 娣诲姞璁惧鎴愬姛涔嬪悗,澶勭悊涓�浜涗笢瑗�
         /// </summary>
-        private void DoSomethingAfterAddDeviceSuccess()
+        private void DoSomethingAfterAddDeviceSuccess(Entity.Function newDevice)
         {
             HdlThreadLogic.Current.RunThread(() =>
             {
@@ -388,7 +460,7 @@
                         HdlThreadLogic.Current.RunMain(() =>
                         {
                             //鏄剧ず鎴愬姛鐣岄潰
-                            this.ShowSuccessView();
+                            this.ShowSuccessView(newDevice);
                         });
                     }
                 }

--
Gitblit v1.8.0