From d78515ac4ac8cf4a1785d9df18058d6724f12b79 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 14 一月 2021 19:34:59 +0800
Subject: [PATCH] 合并xm2021-01-13  wjc2021-02-06

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs |   46 ++++++++++++++++++++++++++--------------------
 1 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
index 4513675..83441a5 100644
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
@@ -33,10 +33,6 @@
             }
         }
         /// <summary>
-        /// 澶囦唤鐢ㄧ殑缃戝叧ID
-        /// </summary>
-        private List<string> listBackupGwId = new List<string>();
-        /// <summary>
         /// 缃戝叧鏂囦欢鐨勫墠缂�鍚嶅瓧
         /// </summary>
         private string gwFirstName = "Gateway_";
@@ -117,7 +113,7 @@
                 return;
             }
 
-            List<string> listBackupGwId = new List<string>();
+            var listBackupGwId = new List<string>();
             var fileData = HdlFileLogic.Current.ReadFileByteContent(DirNameResourse.BackupGatewayIdFile);
             if (fileData != null)
             {
@@ -2049,10 +2045,16 @@
         /// <param name="zbGateway"></param>
         public void BackupGatewayIdOnNotNetwork(ZbGateway zbGateway)
         {
-            var strId = zbGateway.GwId;
-            if (listBackupGwId.Contains(strId) == false)
+            var listBackupGwId = new List<string>();
+            var fileData = HdlFileLogic.Current.ReadFileByteContent(DirNameResourse.BackupGatewayIdFile);
+            if (fileData != null)
             {
-                listBackupGwId.Add(strId);
+                listBackupGwId = JsonConvert.DeserializeObject<List<string>>(System.Text.Encoding.UTF8.GetString(fileData));
+            }
+
+            if (listBackupGwId.Contains(zbGateway.GwId) == false)
+            {
+                listBackupGwId.Add(zbGateway.GwId);
 
                 //澶囦唤
                 HdlFileLogic.Current.SaveFileContent(DirNameResourse.BackupGatewayIdFile, listBackupGwId);
@@ -2069,9 +2071,9 @@
             {
                 return true;
             }
-            this.listBackupGwId = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(System.Text.Encoding.UTF8.GetString(fileData));
+            var listBackupGwId = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(System.Text.Encoding.UTF8.GetString(fileData));
             var listTempId = new List<string>();
-            listTempId.AddRange(this.listBackupGwId);
+            listTempId.AddRange(listBackupGwId);
 
             //璋冪敤鎺ュ彛锛岀粦瀹氱綉鍏�
             var bindGateway = new BindGatewayPra();
@@ -2080,20 +2082,24 @@
 
             foreach (var gwId in listTempId)
             {
-                bindGateway.BindGateways.Clear();
-                bindGateway.BindGateways.Add(gwId);
-                var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, new List<string> { "NotCheck" }, false);
-                if (result == "Success")
+                if (this.IsGatewayExist(gwId) == true)
                 {
-                    this.listBackupGwId.Remove(gwId);
+                    bindGateway.BindGateways.Clear();
+                    bindGateway.BindGateways.Add(gwId);
+                    var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, new List<string> { "NotCheck" }, false);
+                    if (result == "Success")
+                    {
+                        listBackupGwId.Remove(gwId);
+                    }
+                    if (result == "Error")
+                    {
+                        break;
+                    }
                 }
-                if (result == "Error")
-                {
-                    break;
-                }
+                listBackupGwId.Remove(gwId);
             }
 
-            if (this.listBackupGwId.Count == 0)
+            if (listBackupGwId.Count == 0)
             {
                 //濡傛灉娌℃湁浜嗗唴瀹�,鍒欏垹闄ゆ枃浠�
                 string file = DirNameResourse.BackupGatewayIdFile;

--
Gitblit v1.8.0