From f23ad1b3f9f6193f35f72104d690b21dc67d5c1f Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 06 七月 2020 12:35:25 +0800
Subject: [PATCH] 去掉了访问外网的异步

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs |  154 ++++++++++++++++++++++-----------------------------
 1 files changed, 67 insertions(+), 87 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
index 26ed638..e9a6550 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
@@ -241,6 +241,9 @@
             {
                 return false;
             }
+            //娣诲姞缃戝叧鐨勮瘽,寮哄埗涓婚〉鍒锋柊
+            UserView.UserPage.Instance.RefreshForm = true;
+
             return true;
         }
 
@@ -324,7 +327,7 @@
             }
 
             //鏇存柊浜戠鏁版嵁搴�
-            int flage1 = await this.SetGatewayIdToDataBase(zbGateway);
+            int flage1 = this.SetGatewayIdToDataBase(zbGateway);
             //寮傚父涔熶笉楦熷畠,0鏄壒娈婂惈涔�
             if (flage1 == 0)
             {
@@ -396,7 +399,7 @@
         /// </summary>
         /// <param name="zbGateway">缃戝叧瀵硅薄</param>
         /// <returns></returns>
-        private async Task<int> SetGatewayIdToDataBase(ZbGateway zbGateway)
+        private int SetGatewayIdToDataBase(ZbGateway zbGateway)
         {
             //璋冪敤鎺ュ彛锛岀粦瀹氱綉鍏�(鍗充娇澶辫触锛屼篃杩斿洖true寰�涓嬭蛋)
             var bindGateway = new BindGatewayPra();
@@ -404,10 +407,8 @@
             //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken
             bindGateway.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
 
-            //涓嶆樉绀哄凡缁忚缁戝畾杩囩殑淇℃伅,NotSetAgain:鍋囧鏂綉鏃�,涓嶄簩娆″彂閫�
-            List<string> listNotShow = new List<string>() { "NotSetAgain" };
-            var result = await UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, listNotShow);
-            if (result == "Error" || result == "ErrorEx")
+            var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway);
+            if (result == "Error")
             {
                 return -1;
             }
@@ -479,7 +480,7 @@
             }
 
             //鏇存柊浜戠鏁版嵁搴�
-            int flage1 = await this.SetGatewayIdToDataBase(zbGateway);
+            int flage1 = this.SetGatewayIdToDataBase(zbGateway);
             //寮傚父涔熶笉楦熷畠,0鏄壒娈婂惈涔�
             if (flage1 == 0)
             {
@@ -507,7 +508,19 @@
             await Task.Delay(8000);
 
             //鑾峰彇缃戝叧鐨勪俊鎭�
-            var result = await zbGateway.GetZbGwInfoAsync();
+            ZbGatewayData.GetGwAllData result = null;
+            int count = 5;
+            while (count >= 0)
+            {
+                result = await zbGateway.GetZbGwInfoAsync();
+                if (result != null && result.getGwData != null)
+                {
+                    break;
+                }
+                count--;
+                //鏈�澶氬啀绛�20绉�
+                await Task.Delay(4000);
+            }
             //妫�娴嬬綉鍏宠繑鍥炵殑鍏遍�氶敊璇姸鎬佺爜
             string error = HdlCheckLogic.Current.CheckCommonErrorCode(result);
             if (error != null)
@@ -547,6 +560,10 @@
                 //娣诲姞澶囦唤
                 HdlAutoBackupLogic.AddOrEditorFile(this.dicGateway[gwID].FilePath);
             }
+
+            //娣诲姞缃戝叧鐨勮瘽,寮哄埗涓婚〉鍒锋柊
+            UserView.UserPage.Instance.RefreshForm = true;
+
             return 1;
         }
 
@@ -677,7 +694,7 @@
             if (getGatewayInfo == true)
             {
                 //鑾峰彇缃戝叧淇℃伅
-                var info = await this.GetGatewayNewInfoAsync(realWay);
+                var info = this.GetGatewayInfo(realWay);
                 if (info == null)
                 {
                     //鍏抽棴杩涘害鏉�
@@ -746,7 +763,7 @@
             }
 
             //鍒犻櫎浜戠鐨勭綉鍏�
-            await this.DeleteDataBaseGateway(zbGatewayID);
+            this.DeleteDataBaseGateway(zbGatewayID);
 
             //鍒犻櫎缃戝叧鏂囦欢
             this.DeleteGatewayFile(zbGatewayID);
@@ -1388,9 +1405,9 @@
                 else
                 {
                     //缁欎竴涓嚎绋嬪幓鑾峰彇瀹冪殑闀滃儚绫诲瀷
-                    HdlThreadLogic.Current.RunThread(async () =>
+                    HdlThreadLogic.Current.RunThread(() =>
                     {
-                        var result = await this.GetGatewayNewInfoAsync(zbGateway, ShowErrorMode.NO);
+                        var result = this.GetGatewayInfo(zbGateway, ShowErrorMode.NO);
                         if (result != null)
                         {
                             //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑
@@ -1430,32 +1447,13 @@
         /// <param name="zbGateway"></param>
         /// <param name="mode"></param>
         /// <returns></returns>
-        public async Task<ZbGatewayData.GetGwData> GetGatewayNewInfoAsync(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES)
+        public ZbGatewayData.GetGwData GetGatewayInfo(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES)
         {
-            ZbGateway realWay = null;
-            if (this.GetRealGateway(ref realWay, zbGateway) == false)
-            {
-                if (mode == ShowErrorMode.YES)
-                {
-                    string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg);
-                    this.ShowTipMsg(msg);
-                }
-                return null;
-            }
             //鑾峰彇缃戝叧鐗堟湰淇℃伅
-            var imageTypeResult = await realWay.GetZbGwInfoAsync();
-            //妫�娴嬬綉鍏宠繑鍥炵殑鍏遍�氶敊璇姸鎬佺爜
-            string error = HdlCheckLogic.Current.CheckCommonErrorCode(imageTypeResult);
-            if (error != null)
-            {
-                if (mode == ShowErrorMode.YES)
-                {
-                    this.ShowTipMsg(error);
-                }
-                return null;
-            }
+            var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 95 } };
+            var result = this.SendJobjectDataToGateway(zbGateway, "GetZbGwInfo", jObject.ToString(), "GetZbGwInfo_Respon");
 
-            if (imageTypeResult == null || imageTypeResult.getGwData == null)
+            if (result.ErrorMsgDiv != 1)
             {
                 if (mode == ShowErrorMode.YES)
                 {
@@ -1467,42 +1465,19 @@
                 }
                 return null;
             }
-
+            var getGwInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGatewayData.GetGwData>(result.ReceiptData);
             string gwID = zbGateway.GwId;
             if (this.dicGateway.ContainsKey(gwID) == true)
             {
                 //鍒锋柊缂撳瓨
                 ZbGateway localWay = this.dicGateway[gwID];
                 //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑
-                this.SetGatewayDataToLocalMemmory(localWay, imageTypeResult.getGwData);
+                this.SetGatewayDataToLocalMemmory(localWay, getGwInfo);
             }
             //椤轰究杩欎釜鍙橀噺涔熻缃竴涓�
-            this.SetGatewayDataToLocalMemmory(zbGateway, imageTypeResult.getGwData, false);
+            this.SetGatewayDataToLocalMemmory(zbGateway, getGwInfo, false);
 
-            return imageTypeResult.getGwData;
-        }
-
-        /// <summary>
-        /// 鑾峰彇缃戝叧淇℃伅,闈炲紓姝�,浼氱瓑寰�(鐗堟湰淇℃伅,闀滃儚绫诲瀷,鍩烘湰淇℃伅绛夈�傚彧鍒锋柊鏈湴缃戝叧鐨勭紦瀛�)
-        /// </summary>
-        /// <param name="zbGateway"></param>
-        /// <param name="mode"></param>
-        /// <returns></returns>
-        public ZbGatewayData.GetGwData GetGatewayNewInfo(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES)
-        {
-            bool bolBreak = false;
-            ZbGatewayData.GetGwData result = null;
-            HdlThreadLogic.Current.RunThread(async () =>
-            {
-                result = await this.GetGatewayNewInfoAsync(zbGateway, mode);
-                bolBreak = true;
-            });
-
-            while (bolBreak == false)
-            {
-                System.Threading.Thread.Sleep(500);
-            }
-            return result;
+            return getGwInfo;
         }
 
         /// <summary>
@@ -1609,10 +1584,10 @@
         /// <param name="zbGateway">缃戝叧瀵硅薄</param>
         /// <param name="mode">閿欒鏃讹紝鏄惁鏄剧ず閿欒</param>
         /// <returns></returns>
-        public async Task<List<FirmwareVersionInfo>> GetGatewayAllNewVersion(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES)
+        public List<FirmwareVersionInfo> GetGatewayAllNewVersion(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES)
         {
             //鑾峰彇缃戝叧鐗堟湰淇℃伅
-            var result = await HdlGatewayLogic.Current.GetGatewayNewInfoAsync(zbGateway, mode);
+            var result = this.GetGatewayInfo(zbGateway, mode);
             if (result == null)
             {
                 return null;
@@ -1629,10 +1604,14 @@
                 localWay.LinuxHardVersion.ToString(),
                 localWay.LinuxImageType.ToString());
 
-            //娣诲姞鍗忚皟鍣ㄧ殑鍗囩骇鍥轰欢(鎴愪笉鎴愬姛閮芥棤鎵�璋�)
-            flage = HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.Coordinator,
-                localWay.CoordinatorHardVersion.ToString(),
-                localWay.CoordinatorImageId.ToString());
+            //娣诲姞鍗忚皟鍣ㄧ殑鍗囩骇鍥轰欢(鎴愪笉鎴愬姛閮芥棤鎵�璋�) 蹇呴』鑳藉鑱旂綉鎵嶈
+            if (flage == 1)
+            {
+                //娌$綉鐨勬椂鍊欎笉鍐嶅鐞�
+                HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.Coordinator,
+                    localWay.CoordinatorHardVersion.ToString(),
+                    localWay.CoordinatorImageId.ToString());
+            }
 
             //缃戝叧鐨勭増鏈�
             var gatewayFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.Linux,
@@ -1656,10 +1635,13 @@
                 //铏氭嫙椹卞姩鍙�
                 foreach (var data in localWay.DriveCodeList)
                 {
-                    //娣诲姞铏氭嫙椹卞姩鐨勫崌绾у浐浠�(鎴愪笉鎴愬姛閮芥棤鎵�璋�)
-                    flage = HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.VirtualDevice,
-                        data.DriveHwVersion.ToString(),
-                        data.DriveImageType.ToString());
+                    //娣诲姞铏氭嫙椹卞姩鐨勫崌绾у浐浠�(鎴愪笉鎴愬姛閮芥棤鎵�璋�) 蹇呴』鑳藉鑱旂綉鎵嶈
+                    if (flage == 1)
+                    {
+                        HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.VirtualDevice,
+                           data.DriveHwVersion.ToString(),
+                           data.DriveImageType.ToString());
+                    }
 
                     //铏氭嫙椹卞姩
                     var virtualFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.VirtualDevice,
@@ -1753,9 +1735,9 @@
                 else
                 {
                     //缁欎竴涓嚎绋嬪幓鑾峰彇瀹冪殑闀滃儚绫诲瀷
-                    HdlThreadLogic.Current.RunThread(async () =>
+                    HdlThreadLogic.Current.RunThread(() =>
                     {
-                        var result = await this.GetGatewayNewInfoAsync(zbGateway, ShowErrorMode.NO);
+                        var result = this.GetGatewayInfo(zbGateway, ShowErrorMode.NO);
                         if (result != null)
                         {
                             //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑
@@ -1791,9 +1773,9 @@
                 else
                 {
                     //缁欎竴涓嚎绋嬪幓鑾峰彇瀹冪殑闀滃儚绫诲瀷
-                    HdlThreadLogic.Current.RunThread(async () =>
+                    HdlThreadLogic.Current.RunThread(() =>
                     {
-                        var result = await this.GetGatewayNewInfoAsync(zbGateway, ShowErrorMode.NO);
+                        var result = this.GetGatewayInfo(zbGateway, ShowErrorMode.NO);
                         if (result != null)
                         {
                             //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑
@@ -1885,9 +1867,9 @@
             }
 
             bool canBreak = false;
-            HdlThreadLogic.Current.RunThread(async () =>
+            HdlThreadLogic.Current.RunThread(() =>
             {
-                List<string> list = new List<string>() { "NotSetAgain", "NotCheck" };
+                List<string> list = new List<string>() { "NotCheck" };
 
                 //璁剧疆璁块棶鎺ュ彛鐨勫弬鏁�
                 var pra = new GetGatewayPra();
@@ -1896,7 +1878,7 @@
                 //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken
                 pra.ReqDto.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
 
-                var result = await UserCenterLogic.GetResponseDataByRequestHttps("App/GetSingleHomeGatewayPagger", true, pra, list);
+                var result = UserCenterLogic.GetResponseDataByRequestHttps("App/GetSingleHomeGatewayPagger", true, pra, list);
                 if (string.IsNullOrEmpty(result) == true)
                 {
                     canBreak = true;
@@ -2019,16 +2001,16 @@
         /// 瑙g粦浜戠缁戝畾鐨勭綉鍏�
         /// </summary>
         /// <param name="strWayId"></param>
-        public async Task<bool> DeleteDataBaseGateway(string strWayId)
+        public bool DeleteDataBaseGateway(string strWayId)
         {
             var Pra = new DeleteGatewayPra();
             Pra.BindGateways.Add(strWayId);
             //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken
             Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
 
-            List<string> listNotShowError = new List<string>() { "NoExist", "NoBind", "NoRecord", "NotSetAgain" };
+            List<string> listNotShowError = new List<string>() { "NoExist", "NoBind", "NoRecord" };
 
-            bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/ReleaseGatewayToHome", true, Pra, listNotShowError);
+            bool result = UserCenterLogic.GetResultStatuByRequestHttps("App/ReleaseGatewayToHome", true, Pra, listNotShowError);
             if (result == false)
             {
                 return false;
@@ -2063,7 +2045,7 @@
         /// </summary>
         public void ResetComandToBindBackupGateway()
         {
-            HdlThreadLogic.Current.RunThread(async () =>
+            HdlThreadLogic.Current.RunThread(() =>
             {
                 var fileData = Global.ReadFileByDirectory(DirNameResourse.LocalMemoryDirectory, DirNameResourse.BackupGatewayIdFile);
                 if (fileData == null)
@@ -2074,8 +2056,6 @@
                 var listTempId = new List<string>();
                 listTempId.AddRange(this.listBackupGwId);
 
-                //涓嶆樉绀哄凡缁忚缁戝畾杩囩殑淇℃伅,NotSetAgain:鍋囧鏂綉鏃�,涓嶄簩娆″彂閫�
-                List<string> listNotShow = new List<string>() { "NotSetAgain" };
                 //璋冪敤鎺ュ彛锛岀粦瀹氱綉鍏�
                 var bindGateway = new BindGatewayPra();
                 //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken
@@ -2085,12 +2065,12 @@
                 {
                     bindGateway.BindGateways.Clear();
                     bindGateway.BindGateways.Add(gwId);
-                    var result = await UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, listNotShow);
+                    var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway);
                     if (result == "Success")
                     {
                         this.listBackupGwId.Remove(gwId);
                     }
-                    if (result == "Error" || result == "ErrorEx")
+                    if (result == "Error")
                     {
                         break;
                     }

--
Gitblit v1.8.0