From 49add64d7f25448baa06ac5a9ebbeac0a3ae97e0 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 13 一月 2020 13:50:29 +0800
Subject: [PATCH] Version 2.50113 1.优化更新。 2.第一次引导或者添加住宅,默认添加2个房间。编辑住宅不处理。 3.设备名超过20字节限制。 4.修复编辑住宅名字重复不提示问题。 5.优化添加住宅逻辑。

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs |  227 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 122 insertions(+), 105 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
index 0ed1ed1..a12edd8 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
@@ -695,7 +695,7 @@
                                 return;
                             }
                         }
-                        BindGateways ();
+                        BindGatewaysNew ();
                     }
                 } catch (Exception ex) {
                     Console.WriteLine (ex.Message);
@@ -891,133 +891,64 @@
                 }
             }
 
-            BindGateways ();
+            BindGatewaysNew ();
 
 
         }
 
+
         /// <summary>
         /// Gateway setting succeeded锛宒ata up.Please wait...
+        /// 缁戝畾Mac(鍗板害鐗�)
         /// </summary>
-        void BindGateways (){
-
+        void BindGatewaysNew ()
+        {
             Application.RunOnMainThread (() => {
                 MainPage.Loading.Start ("Gateway setting succeeded锛宒ata up.Please wait...");
             });
             IO.FileUtils.SaveEquipmentMessage (gatewayDeicve);
             var gatewayMAC = gatewayDeicve.MAC.Replace (".", "");
-            var oldMac = "";
-            //2020-01-11 
-            if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) {
-                //褰撳墠浣忓畢瀛樺湪Mac 淇敼MAC鎺ュ彛
-                oldMac = UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId;
-                if(oldMac == gatewayMAC) {//鍜岀粦瀹歮ac涓�鑷达紝涓嶇敤淇敼
-                    AddMacToUserConfig (gatewayMAC);
-                    return;
-                }
 
-                var mUpdateMacObj = new UpdateMacObj () {
-                    LoginAccessToken = MainPage.LoginUser.LoginTokenString,
-                    HomeId = UserConfig.Instance.CurrentRegion.Id,
-                    NewMac = gatewayMAC,
-                    OldMac = oldMac
-                };
-                string urlHead = MainPage.RequestHttpsHost;
-                if (mUpdateMacObj.IsOtherAccountCtrl) {
-                    urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
-                    mUpdateMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
-                }
+            //璧版柊鏇存柊缁戝畾鎺ュ彛
+            var mBindMacObj = new BindMacObj () {
+                LoginAccessToken = MainPage.LoginUser.LoginTokenString,
+                HomeId = UserConfig.Instance.CurrentRegion.Id,
+                MAC = gatewayMAC
 
-                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mUpdateMacObj);
-
-                //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
-                var respone = MainPage.RequestHttps (API.UpdateMac, requestJson, urlHead);
-                if (respone.StateCode.ToUpper () != "SUCCESS") {
-                    GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
-                    Application.RunOnMainThread (() => {
-                        new Alert ("", "Failed to update Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
-                        if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
-                            new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
-                        }
-                    });
-                    return;
-                }
-                //GetNowHomeGateway ();
-                AddMacToUserConfig (gatewayMAC);
-            } else {
-                //璧版柊缁戝畾鎺ュ彛
-                var mBindMacObj = new BindGatewayToHomeObj () {
-                    LoginAccessToken = MainPage.LoginUser.LoginTokenString,
-                    HomeId = UserConfig.Instance.CurrentRegion.Id,
-
-                };
-                mBindMacObj.BindGateways.Add (gatewayMAC);
-                string urlHead = MainPage.RequestHttpsHost;
-                if (mBindMacObj.IsOtherAccountCtrl) {
-                    urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
-                    mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
-                }
-
-
-                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj);
-
-                //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
-                var respone = MainPage.RequestHttps (API.BindGatewayToHome, requestJson, urlHead);
-                if (respone.StateCode.ToUpper () != "SUCCESS" && respone.StateCode != "BindGatewaysExists") {
-                    GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
-                    Application.RunOnMainThread (() => {
-                        new Alert ("", "Failed to bind Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
-                        if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
-                            new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
-                        }
-                    });
-                    return;
-                }
-                //GetNowHomeGateway ();
-                AddMacToUserConfig (gatewayMAC);
+            };
+          
+            string urlHead = MainPage.RequestHttpsHost;
+            if (mBindMacObj.IsOtherAccountCtrl) {
+                urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
+                mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
             }
 
+
+            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj);
+
+            //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
+            var respone = MainPage.RequestHttps (API.BindMac, requestJson, urlHead);
+            if (respone.StateCode.ToUpper () != "SUCCESS") {
+                GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
+                Application.RunOnMainThread (() => {
+                    new Alert ("", $"Failed to bind Mac address! {ErrorCode.Reason }{respone.StateCode}", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+                    if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
+                        new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+                    }
+                });
+                return;
+            }
+            //GetNowHomeGateway ();
+            AddMacToUserConfig (gatewayMAC);
+
         }
-
-        //void GetAllBindGatewarysPagger ()
-        //{
-        //    var gatewayListObj = new GetAllBindGatewarysPaggerObj ();
-        //    gatewayListObj.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
-        //    var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj);
-        //    var gatewayListRevertObj = MainPage.RequestHttps (API.GetAllBindGatewarysPagger, gatewayListJson);
-        //    if (gatewayListRevertObj.StateCode.ToUpper () == "SUCCESS") {
-        //        var mGateRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AllBindGatewarysPaggerRes> (gatewayListRevertObj.ResponseData.ToString ());
-        //        var responseGatewayDataObj = mGateRes.PageData;
-        //        if (responseGatewayDataObj.Count > 0) {
-        //            UserConfig.Instance.GatewayList.Clear ();
-        //            UserConfig.Instance.GatewayList.AddRange (responseGatewayDataObj);
-        //            UserConfig.Instance.GatewayMAC = gatewayDeicve.MAC;
-        //            UserConfig.Instance.SaveUserConfig ();
-        //            MainPage.LoginUser.LastTime = DateTime.Now;
-        //            Application.RunOnMainThread (() => {
-        //                UserMiddle.Init (true);
-        //            });
-        //        } else {
-        //            Application.RunOnMainThread (() => {
-        //                new Alert ("", "Communication abnormality, gateway failed to bind residence.Please try again.", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
-        //                if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
-        //                    new Alert ("22:" + gatewayListRevertObj.StateCode, gatewayListRevertObj.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
-        //                }
-        //            });
-        //        }
-        //    } else {
-
-        //        ShowGetAllBindGatewarysPaggerErrorInfo (gatewayListRevertObj.StateCode);
-        //    }
-
-        //}
 
         /// <summary>
         /// 淇敼鍒囨崲鏈湴浣忓畢 缃戝叧
         /// </summary>
         void AddMacToUserConfig (string gatewayMAC)
         {
-         
+
             UserConfig.Instance.GatewayMAC = gatewayMAC;
             UserConfig.Instance.SaveUserConfig ();
             MainPage.LoginUser.LastTime = DateTime.Now;
@@ -1030,6 +961,92 @@
 
 
 
+
+        ///// <summary>
+        ///// Gateway setting succeeded锛宒ata up.Please wait...
+        ///// </summary>
+        //void BindGateways ()
+        //{
+
+        //    Application.RunOnMainThread (() => {
+        //        MainPage.Loading.Start ("Gateway setting succeeded锛宒ata up.Please wait...");
+        //    });
+        //    IO.FileUtils.SaveEquipmentMessage (gatewayDeicve);
+        //    var gatewayMAC = gatewayDeicve.MAC.Replace (".", "");
+        //    var oldMac = "";
+        //    //2020-01-11 
+        //    if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) {
+        //        //褰撳墠浣忓畢瀛樺湪Mac 淇敼MAC鎺ュ彛
+        //        oldMac = UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId;
+        //        if (oldMac == gatewayMAC) {//鍜岀粦瀹歮ac涓�鑷达紝涓嶇敤淇敼
+        //            AddMacToUserConfig (gatewayMAC);
+        //            return;
+        //        }
+
+        //        var mUpdateMacObj = new UpdateMacObj () {
+        //            LoginAccessToken = MainPage.LoginUser.LoginTokenString,
+        //            HomeId = UserConfig.Instance.CurrentRegion.Id,
+        //            NewMac = gatewayMAC,
+        //            OldMac = oldMac
+        //        };
+        //        string urlHead = MainPage.RequestHttpsHost;
+        //        if (mUpdateMacObj.IsOtherAccountCtrl) {
+        //            urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
+        //            mUpdateMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
+        //        }
+
+        //        var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mUpdateMacObj);
+
+        //        //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
+        //        var respone = MainPage.RequestHttps (API.UpdateMac, requestJson, urlHead);
+        //        if (respone.StateCode.ToUpper () != "SUCCESS") {
+        //            GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
+        //            Application.RunOnMainThread (() => {
+        //                new Alert ("", "Failed to update Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+        //                if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
+        //                    new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+        //                }
+        //            });
+        //            return;
+        //        }
+        //        //GetNowHomeGateway ();
+        //        AddMacToUserConfig (gatewayMAC);
+        //    } else {
+        //        //璧版柊缁戝畾鎺ュ彛
+        //        var mBindMacObj = new BindGatewayToHomeObj () {
+        //            LoginAccessToken = MainPage.LoginUser.LoginTokenString,
+        //            HomeId = UserConfig.Instance.CurrentRegion.Id,
+
+        //        };
+        //        mBindMacObj.BindGateways.Add (gatewayMAC);
+        //        string urlHead = MainPage.RequestHttpsHost;
+        //        if (mBindMacObj.IsOtherAccountCtrl) {
+        //            urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
+        //            mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
+        //        }
+
+
+        //        var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj);
+
+        //        //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
+        //        var respone = MainPage.RequestHttps (API.BindGatewayToHome, requestJson, urlHead);
+        //        if (respone.StateCode.ToUpper () != "SUCCESS" && respone.StateCode != "BindGatewaysExists") {
+        //            GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
+        //            Application.RunOnMainThread (() => {
+        //                new Alert ("", "Failed to bind Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+        //                if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
+        //                    new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+        //                }
+        //            });
+        //            return;
+        //        }
+        //        //GetNowHomeGateway ();
+        //        AddMacToUserConfig (gatewayMAC);
+        //    }
+
+        //}
+
+
         /// <summary>
         /// 缁戝畾澶辫触涔嬪悗锛屾煡璇㈠埛鏂颁竴娆″綋鍓嶄綇瀹� 缃戝叧鍒楄〃
         /// 2020-01-11

--
Gitblit v1.8.0