From ac2ee45fadc64fe840bbba6264df3ca4622adb15 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期日, 12 一月 2020 16:06:13 +0800
Subject: [PATCH] 2020-01-12 1.优化修改。

---
 Crabtree/SmartHome/HDL/Operation/UserConfig.cs |   58 +++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 47 insertions(+), 11 deletions(-)

diff --git a/Crabtree/SmartHome/HDL/Operation/UserConfig.cs b/Crabtree/SmartHome/HDL/Operation/UserConfig.cs
index 4e972dd..93db11b 100644
--- a/Crabtree/SmartHome/HDL/Operation/UserConfig.cs
+++ b/Crabtree/SmartHome/HDL/Operation/UserConfig.cs
@@ -156,7 +156,11 @@
                 CheckIfNeedGetMasterAccountToken ();
             }
             get {
+                if (currentRegion == null) {
+                    currentRegion = new RegionInfoRes ();
+                }
                 return currentRegion;
+
             }
 
         }
@@ -213,23 +217,52 @@
                 if (CheckHomeGateways ()) {
                     currentRegion.HomeGateways [0].GatewayUniqueId = value;
                 } else {
-                    if (currentRegion != null && currentRegion.HomeGateways == null) {
+                    //2020-01-11 
+                    if (currentRegion != null) {
                         var mHomeGateways = new HomeGateways () { GatewayUniqueId = value };
-                        List<HomeGateways> HomeGateways = new List<HomeGateways> ();
-                        HomeGateways.Add (mHomeGateways);
-                        currentRegion.HomeGateways = HomeGateways;
+                        var mList = new List<HomeGateways> ();
+                        mList.Add (mHomeGateways);
+                        currentRegion.HomeGateways = mList;
                     }
                 }
             }
 
         }
-        
+
+        /// <summary>
+        /// 鏇存柊璁剧疆褰撳墠浣忓畢缃戝叧
+        /// 2020-01-11 
+        /// </summary>
+        /// <param name="mGatewayDataList"></param>
+        public void SetNowHomeGateways (List<GatewayRes> mGatewayDataList) {
+            try {
+                if (currentRegion != null) {
+                    if (mGatewayDataList != null && mGatewayDataList.Count > 0) {
+                        var mMacList = new List<HomeGateways> ();
+                        foreach (var mGatewayRes in mGatewayDataList) {
+                            var mac = new HomeGateways ();
+                            mac.GatewayUniqueId = mGatewayRes.GatewayUniqueId;
+                            mMacList.Add (mac);
+                        }
+                        currentRegion.HomeGateways = mMacList;
+                    }
+                }
+            } catch {
+
+            }
+        }
+
+
 
         public List<string> RometoUserInfoKeys = new List<string> ();
 
         public string MasterAccountToken = "";
         public string MasterAccountRequestBaseUrl = "";
-
+        /// <summary>
+        /// 鏄惁鑾峰彇涓�
+        /// 2020-01-11 
+        /// </summary>
+        bool bGetting = false;
         //public static List<string> LocalFiles = IO.FileUtils.ReadFiles ();
         /// <summary>
         /// 鑾峰彇鎺у埗鍒嗕韩椤圭洰(浣忓畢)璇锋眰淇℃伅
@@ -238,18 +271,19 @@
         /// <param name="mSharedHid"></param>
         public void CheckIfNeedGetMasterAccountToken ()
         {
+            if (bGetting) return;
+
             //2020-01-08 鍒ゆ柇鏄惁鍒嗕韩杩囨潵鐨勪綇瀹�
-            if (CurrentRegion != null && CurrentRegion.IsOthreShare) {
+            if (currentRegion != null && currentRegion.IsOthreShare) {
                 //MainPage.IsAdministrator = UserConfig.Instance.CurrentRegion.IsOthreShare;
                 //璇锋眰涓昏处鍙穞oken
                 System.Threading.Tasks.Task.Run (() => {
                     try {
-                        //var mMainAccountId = UserConfig.Instance.CurrentRegion.MainUserDistributedMark;
-                        //var mSharedHid = UserConfig.Instance.CurrentRegion.Id;
+                        bGetting = true;
                         var requestObj = new GetSharedHomeApiControlObj () {
                             LoginAccessToken = MainPage.LoginUser.LoginTokenString,
-                            MainAccountId = UserConfig.Instance.CurrentRegion.MainUserDistributedMark,
-                            SharedHid = UserConfig.Instance.CurrentRegion.Id,
+                            MainAccountId = currentRegion.MainUserDistributedMark,
+                            SharedHid = currentRegion.Id,
 
                         };
                         var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
@@ -263,6 +297,8 @@
                         }
                     } catch {
 
+                    } finally {
+                        bGetting = false;
                     }
                 });
             }

--
Gitblit v1.8.0