From 5a5a2b696866f947b6025d26c3302e8ffef46435 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 11 一月 2021 16:11:20 +0800
Subject: [PATCH] 2021-01-11 1.更新MQTT连接和本地搜索网关方法。2.子账号相关接口完善

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs |  547 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 403 insertions(+), 144 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs
index 72ab748..30b722b 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs
@@ -1,8 +1,6 @@
-锘縰sing Shared.SimpleControl;
-using System;
+锘縰sing System;
 using System.Collections.Generic;
-using System.Security.Cryptography;
-using System.Text;
+using Shared.SimpleControl.R;
 
 namespace Shared.SimpleControl.Phone
 {
@@ -18,7 +16,7 @@
             var bodyView = new FrameLayout () {
                 BackgroundColor = SkinStyle.Current.ViewColor
             };
-           AddChidren (bodyView);
+            AddChidren (bodyView);
 
             if (MainPage.LoginUser != null && MainPage.LoginUser.IsLogin == true) {
                 this.Close ();
@@ -34,7 +32,7 @@
             FrameLayout logoView = new FrameLayout () {
                 Height = Application.GetRealHeight (400),
             };
-           bodyView.AddChidren (logoView);
+            bodyView.AddChidren (logoView);
 
             //FrameLayout textView = new FrameLayout () {
             //    Y = logoView.Bottom,
@@ -49,21 +47,21 @@
             //AddChidren (buttonView);
 
             Button btnLogo = new Button () {
-                Y = Application.GetRealHeight(30),
+                Y = Application.GetRealHeight (30),
                 Height = Application.GetRealHeight (430),
                 UnSelectedImagePath = MainPage.RegisterLogoString,
             };
             logoView.AddChidren (btnLogo);
 
             var accountView = new FrameLayout () {
-                Width = Application.GetMinRealAverage (500),
-                Height = Application.GetMinRealAverage (85),
+                Width = Application.GetRealWidth (500),
+                Height = Application.GetRealWidth (85),
                 X = Application.GetRealWidth (70),
                 Y = btnLogo.Bottom + Application.GetRealHeight (30),
                 BackgroundImagePath = "Register/Register_Email_Address.png",
                 Radius = (uint)Application.GetRealHeight (0),
             };
-           bodyView.AddChidren (accountView);
+            bodyView.AddChidren (accountView);
 
             var etAccount = new EditText () {
                 Width = Application.GetRealWidth (400),
@@ -73,11 +71,20 @@
                 TextAlignment = TextAlignment.CenterLeft,
                 Radius = (uint)Application.GetRealHeight (0),
                 TextColor = SkinStyle.Current.TextColor1,
-                //Text = account,
-#if DEBUG
-                Text = "18926269190@189.cn"
-#endif
+                Text = account,
+
             };
+#if DEBUG
+            //etAccount.Text = "18926269190@189.cn";
+            //etAccount.Text = "721343314@qq.com";
+            //etAccount.Text = "crabtreel12019@gmail.com";
+            //etAccount.Text = "2791308028@qq.com";
+            //etAccount.Text = "551775569@qq.com";
+            //etAccount.Text = "18824864143";
+
+            etAccount.Text = "cjl@hdlchina.com.cn";
+#endif
+
             accountView.AddChidren (etAccount);
 
             var userConfigBytes = IO.FileUtils.ReadFile ("AccountListDB");
@@ -91,6 +98,13 @@
             }
             var accountList = accountListDB.account;
 
+            //鑷姩濉啓璐﹀彿
+            if (string.IsNullOrEmpty (account)) {
+                if (accountList.Count > 0) {
+                    etAccount.Text = accountList [accountList.Count - 1];
+                }
+
+            }
             var accountListView = new VerticalScrolViewLayout () {
                 Width = Application.GetRealWidth (500),
                 Height = Application.GetRealHeight (85 * 2),
@@ -101,36 +115,38 @@
             };
 
             var passwrodView = new FrameLayout () {
-                Width = Application.GetMinRealAverage (500),
-                Height = Application.GetMinRealAverage (85),
+                Width = Application.GetRealWidth (500),
+                Height = Application.GetRealWidth (85),
                 X = Application.GetRealWidth (70),
-                Y = accountView.Bottom + Application.GetRealHeight (50),
+                Y = accountView.Bottom + Application.GetRealWidth (50),
                 BackgroundImagePath = "Register/Register_Password_kuang.png",
             };
-           bodyView.AddChidren (passwrodView);
+            bodyView.AddChidren (passwrodView);
 
             var etPasswrod = new EditText () {
-                Width = Application.GetRealWidth (400-73),
+                Width = Application.GetRealWidth (400 - 73),
                 X = Application.GetRealWidth (100),
                 PlaceholderTextColor = SkinStyle.Current.PlaceholderTextColor,
                 PlaceholderText = Language.StringByID (R.MyInternationalizationString.PleaseEnterPassword),
                 TextAlignment = TextAlignment.CenterLeft,
                 SecureTextEntry = true,
                 TextColor = SkinStyle.Current.TextColor1,
-#if DEBUG
-                Text = "123456"
-#endif
-                //Text = password,
+
+                Text = password,
             };
+#if DEBUG
+            etPasswrod.Text = "123456";
+            //etPasswrod.Text = "123456-Aa";
+#endif
             passwrodView.AddChidren (etPasswrod);
 
             Button btnShowPassword = new Button () {
-                X = etPasswrod.Right ,
-                Y = etPasswrod.Y + Application.GetRealHeight (12),
+                X = etPasswrod.Right,
+                Y = etPasswrod.Y + Application.GetRealWidth (12),
                 Width = Application.GetRealWidth (73),
-                Height = Application.GetRealHeight (60),
-                UnSelectedImagePath = "CrabtreeAdd/ShowPW.png",
-                SelectedImagePath = "CrabtreeAdd/HidePW.png",
+                Height = Application.GetRealWidth (60),
+                UnSelectedImagePath = "CrabtreeAdd/HidePW.png",
+                SelectedImagePath = "CrabtreeAdd/ShowPW.png", 
                 BorderColor = SkinStyle.Current.Transparent,
                 BorderWidth = 2,
                 Radius = 1
@@ -141,32 +157,36 @@
                 etPasswrod.SecureTextEntry = !btnShowPassword.IsSelected;
             };
 
-#if DEBUG
-            int NigelLoginPass = 0;
-            btnLogo.MouseUpEventHandler += (sender, e) => {
-                if (NigelLoginPass == 3) {
-                    etAccount.Text = @"464027401@qq.com";
-                    etPasswrod.Text = "qqqqqq";
-                } else if (NigelLoginPass == 5) {
-                    etAccount.Text = @"Jai.singh@havells.com";
-                    etPasswrod.Text = "123456";
-                }
-                NigelLoginPass++;
-            };
-#endif
+//#if DEBUG
+//            int NigelLoginPass = 0;
+//            btnLogo.MouseUpEventHandler += (sender, e) => {
+//                if (NigelLoginPass == 3) {
+//                    etAccount.Text = @"464027401@qq.com";
+//                    etPasswrod.Text = "qqqqqq";
+//                } else if (NigelLoginPass == 5) {
+//                    etAccount.Text = @"Jai.singh@havells.com";
+//                    etPasswrod.Text = "123456";
+//                }
+//                NigelLoginPass++;
+//            };
+//#endif
+            //if (accountList.Count > 0) {
+            //    etAccount.Text = accountList [accountList.Count-1];
+            //}
+
             etAccount.EditorEnterAction += (obj) => {
                 Application.HideSoftInput ();
                 etPasswrod.Foucs = true;
             };
             etPasswrod.EditorEnterAction += (obj) => {
                 Application.HideSoftInput ();
-            }; 
+            };
 
             Button btnRegister = new Button () {
                 Width = Application.GetRealWidth (200),
-                Height = Application.GetRealHeight (85),
+                Height = Application.GetRealWidth (85),
                 X = Application.GetRealWidth (70),
-                Y = passwrodView.Bottom + Application.GetRealHeight (10),
+                Y = passwrodView.Bottom + Application.GetRealWidth (10),
                 Text = "Sign up",
                 TextSize = 15,
                 TextColor = SkinStyle.Current.TextColor1,
@@ -176,13 +196,13 @@
                 Close ();
                 new AccountRegistration_Crabtree ().Show ();
             };
-           bodyView.AddChidren (btnRegister);
+            bodyView.AddChidren (btnRegister);
 
             Button btnForgotPassword = new Button () {
                 Width = Application.GetRealWidth (500 / 2),
-                Height = Application.GetRealHeight (85),
+                Height = Application.GetRealWidth (85),
                 X = btnRegister.Right + Application.GetRealWidth (50),
-                Y = passwrodView.Bottom + Application.GetRealHeight (10),
+                Y = passwrodView.Bottom + Application.GetRealWidth (10),
                 Text = "Forgot password?",
                 TextSize = 15,
                 TextColor = SkinStyle.Current.TextColor1,
@@ -192,13 +212,13 @@
                 new ForgotPassword ().Show ();
                 this.Close ();
             };
-           bodyView.AddChidren (btnForgotPassword);
+            bodyView.AddChidren (btnForgotPassword);
 
             Button btnLogin = new Button () {
                 Width = Application.GetRealWidth (504),
-                Height = Application.GetRealHeight (89),
+                Height = Application.GetRealWidth (89),
                 X = Application.GetRealWidth (60),
-                Y = btnRegister.Bottom + Application.GetRealHeight(70),
+                Y = btnRegister.Bottom + Application.GetRealWidth (70),
                 BackgroundColor = SkinStyle.Current.MainColor,
                 SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
                 TextID = R.MyInternationalizationString.Login,
@@ -208,7 +228,7 @@
                 BorderColor = SkinStyle.Current.Transparent,
                 BorderWidth = 0,
             };
-           bodyView.AddChidren (btnLogin);
+            bodyView.AddChidren (btnLogin);
             btnLogin.MouseDownEventHandler += (sender, e) => {
                 btnLogin.IsSelected = true;
             };
@@ -218,23 +238,42 @@
                 account = etAccount.Text.Trim ();
                 password = etPasswrod.Text.Trim ();
                 if (string.IsNullOrEmpty (account) && string.IsNullOrEmpty (password)) {
-                    Application.RunOnMainThread (() => {
-                        new Tip () { Text = "Please enter your login details.", Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
-                    });
+                    Utlis.ShowTip ("Please enter your login details.");
+                    //Application.RunOnMainThread (() => {
+                    //    new Tip () { Text = "Please enter your login details.", Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
+                    //});
                     return;
                 }
-                if (string.IsNullOrEmpty (account) ) {
-                    Application.RunOnMainThread (() => {
-                        new Tip () { Text = "Please enter your user id.", Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
-                    });
+                if (string.IsNullOrEmpty (account)) {
+                    Utlis.ShowTip ("Please enter your user id.");
+                    //Application.RunOnMainThread (() => {
+                    //    new Tip () { Text = "Please enter your user id.", Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
+                    //});
                     return;
                 }
+
+                //閭鏍煎紡涓嶅
+                if (!CommonUtlis.Current.CheckEmail(account)) {
+                    Utlis.ShowTip (Language.StringByID (R.MyInternationalizationString.PleaseCheckEmailAddressCorrectly));
+                    //Application.RunOnMainThread (() => {
+                    //    new Tip () { Text = Language.StringByID (R.MyInternationalizationString.PleaseCheckEmailAddressCorrectly), Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
+                    //});
+                    return;
+                }
+
                 if (string.IsNullOrEmpty (password)) {
-                    Application.RunOnMainThread (() => {
-                        new Tip () { Text = "Please enter your password.", Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
-                    });
+                    Utlis.ShowTip ("Please enter your password.");
+                    //Application.RunOnMainThread (() => {
+                    //    new Tip () { Text = "Please enter your password.", Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
+                    //});
                     return;
                 }
+
+                ////妫�娴嬭处鍙锋槸鍚﹂攣瀹�
+                //if (CommonConfig.Current.CheckIfLock (account)) {
+                //    return;
+                //}
+
                 System.Threading.Tasks.Task.Run (() => {
                     try {
                         Application.RunOnMainThread (() => {
@@ -244,110 +283,52 @@
                                 MainPage.Loading.Start ("Login...");
                             }
                         });
-                        if (UserConfig.Instance.internetStatus == 0 || !SystemRemote.checeInternet () ) {
+                        if (UserConfig.Instance.internetStatus == 0) {
                             Application.RunOnMainThread (() => {
-                                new Tip () { Text = "Network abnormal, unable to connect to the Internet", Direction = AMPopTipDirection.Down , CloseTime = 3}.Show (btnLogo);
+                                Utlis.ShowTip ("Network abnormal, unable to connect to the Internet");
+                                //new Tip () { Text = "Network abnormal, unable to connect to the Internet", Direction = AMPopTipDirection.Down, CloseTime = 3 }.Show (btnLogo);
                             });
                             return;
                         }
+                        Login (account, password, accountListDB);
 
-                        var revertConnectionObj = MainPage.RequestHttps ("Connection", "");
-                        if (revertConnectionObj.StateCode == "SUCCESS") {
-                            Application.RunOnMainThread (() => {
-                                if (Language.CurrentLanguage == "Chinese") {
-                                    MainPage.Loading.Start ("閾炬帴鏈嶅姟鍣ㄦ垚鍔�...");
-                                } else {
-                                    MainPage.Loading.Start ("Link server successful...");
-                                }
-                            });
+                        //var revertConnectionObj = MainPage.RequestHttps (API.Connection, "");
+                        //if (revertConnectionObj.StateCode.ToUpper() == StateCode.SUCCESS) {
+                        //    Application.RunOnMainThread (() => {
+                        //        if (Language.CurrentLanguage == "Chinese") {
+                        //            MainPage.Loading.Start ("閾炬帴鏈嶅姟鍣ㄦ垚鍔�...");
+                        //        } else {
+                        //            MainPage.Loading.Start ("Link server successful...");
+                        //        }
+                        //    });
 
-                            var requestObj = new LoginObj () { Account = account, Password = password, Company = MainPage.SoftSmsType };
-                            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
-                            var revertObj = MainPage.RequestHttps ("Login", requestJson, false);
-                            if (revertObj.StateCode == "SUCCESS") {
-                               
-                                if (!accountListDB.account.Contains (account)) {
-                                    accountListDB.account.Add (account);
-                                    accountListDB.SaveAccountListDB ();
-                                }
+                        //    Login (account, password, accountListDB);
+                        //} else {
+                        //    MainPage.FailureToServer ();
+                        //}
 
-                                var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes> (revertObj.ResponseData.ToString ());
-                                var revertData = responseDataObj;
-                                MainPage.LoginUser = new UserInfo {
-                                    ID = revertData.UserId, MasterID = revertData.MainUserId, AccountType = revertData.UserType, AccountString = account, Password = password, LastTime = DateTime.Now,
-                                    AllVisionRegisterDevUserNameGuid = revertData.AllVisionRegisterDevUserNameGuid, Name = revertData.Contact
-                                };
-                                var se = new service.hdlcontrol.com_push.WebServicePush ();
-                                se.VerifySoapHeaderValue = new service.hdlcontrol.com_push.VerifySoapHeader () { Email = MainPage.LoginUser.AccountString, UserMode = 0 };
-                                se.AddRegId (UserConfig.Instance.tokenID, UserConfig.Instance.phoneName);
-
-                                var requestObj2 = new HomeListObj ();
-                                var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
-                                var revertObj2 = MainPage.RequestHttps ("HomeList", requestJson2);
-                                if (revertObj2.StateCode == "SUCCESS") {
-                                    var responseDataObj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>> (revertObj2.ResponseData.ToString ());
-                                    var revertRoomData = responseDataObj2;
-                                    if (revertRoomData.Find ((obj) => obj.RegionID == UserConfig.Instance.CurrentRegion.RegionID) == null) {
-                                        UserConfig.Instance.CurrentRegion = revertRoomData [0];
-                                        UserConfig.Instance.GatewayMAC = revertRoomData [0].MAC;
-                                        IO.FileUtils.DeleteAllFile ();
-                                    } else {
-                                        Room.InitAllRoom ();
-                                    }
-
-                                    var gatewayListObj = new GatewayListObj ();
-                                    var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj);
-                                    var gatewayListRevertObj = MainPage.RequestHttps ("GatewayList", gatewayListJson);
-                                    if (gatewayListRevertObj.StateCode == "SUCCESS") {
-                                        UserConfig.Instance.GatewayList.Clear ();
-                                        var responseGatewayDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GatewayRes>> (gatewayListRevertObj.ResponseData.ToString ());
-                                        UserConfig.Instance.GatewayList.AddRange (responseGatewayDataObj);
-                                        UserConfig.Instance.SaveUserConfig ();
-                                        MainPage.LoginUser.LastTime = DateTime.Now;
-                                        if (UserConfig.Instance.GatewayList.Count == 0) {
-                                            Application.RunOnMainThread (() => {
-                                                UserMiddle.Init ();
-                                                Close ();
-                                            });
-                                            return;
-                                        } else {
-                                            UserConfig.Instance.HomeLists = revertRoomData;
-                                            MainPage.LoginUser.SaveUserInfo ();
-                                            UserConfig.Instance.SaveUserConfig ();
-                                            Scene.Refresh ();
-                                            A31MusicModel.Refresh ();
-                                            Application.RunOnMainThread (() => {
-                                                Close ();
-                                                UserMiddle.Init ();
-                                                EquipmentPublicClass.CheckLinkRemote (2);
-                                            });
-                                        }
-                                    }
-                                }
-                            }
-                        }
                     } catch (Exception ex) {
                         MainPage.FailureToServer ();
-                        Console.WriteLine (ex.Message);
+                        Utlis.WriteLine (ex.Message);
                     } finally {
                         Application.RunOnMainThread (() => {
                             MainPage.Loading.Hide ();
                         });
                     }
-                }) ;
+                });
             };
 
-            etAccount.FoucsChanged += ( sender,  e) => {
-//#if __IOS__
+            etAccount.FoucsChanged += (sender, e) => {
+                //#if __IOS__
                 //btnRegister.Visible = btnForgotPassword.Visible = !e.Focus;
-//#endif
+                //#endif
                 if (e.Focus) {
                     if (etAccount.Text == "")
                         accountList.Clear ();
                     else
                         accountList = accountListDB.account.FindAll ((obj) => (obj.Contains (etAccount.Text) && obj != etAccount.Text));
                     if (accountListView.Parent == null) {
-                       bodyView.AddChidren (accountListView);
+                        bodyView.AddChidren (accountListView);
                     }
                     if (accountList.Count > 0) {
                         accountListView.Visible = e.Focus;
@@ -379,7 +360,7 @@
                     accountListView.Visible = false;
                     return;
                 }
-                    accountList = accountListDB.account.FindAll ((obj) => (obj.Contains (e) && obj != e));
+                accountList = accountListDB.account.FindAll ((obj) => (obj.Contains (e) && obj != e));
                 if (accountList.Count == 0) {
                     accountListView.Visible = false;
                     return;
@@ -416,6 +397,284 @@
 
 
         }
-        
+
+        /// <summary>
+        /// 鐧诲綍 2020-01-11 
+        /// </summary>
+        /// <param name="account">Account.</param>
+        /// <param name="password">Password.</param>
+        private void Login (string account, string password, AccountListDB accountListDB)
+        {
+            //鐧诲綍
+            var revertObj = HttpServerRequest.Current.LoginByPassword (account, password);
+            if (revertObj.Code == StateCode.SUCCESS) {
+
+                if (accountListDB.account.Contains (account)) {
+                    accountListDB.account.Remove (account);
+                }
+                accountListDB.account.Add (account);
+                accountListDB.SaveAccountListDB ();
+
+                var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes> (revertObj.Data.ToString ());
+                var revertData = responseDataObj;
+                MainPage.LoginUser = new UserInfo {
+                    UserType = revertData.userType,
+                    AccountString = account,
+                    Password = password,
+                    LastTime = DateTime.Now,
+                    ID = revertData.userId,
+                    LoginTokenString = revertData.headerPrefix + revertData.accessToken,
+                    RefreshToken = revertData.refreshToken,
+                };
+
+                //鑾峰彇浣忓畢鍒楄〃
+                var revertObjCode = HttpServerRequest.Current.GetHomePager ();
+                if (revertObjCode == StateCode.SUCCESS) {
+                    var mHomeLists = UserConfig.Instance.HomeLists;
+                    if (UserConfig.Instance.CurrentRegion == null) {
+                        if (mHomeLists != null && mHomeLists.Count > 0) {
+                            var bFind = false;
+                            foreach (var mHome in mHomeLists) {
+                                if (mHome.isBindGateway) {
+                                    bFind = true;
+                                    UserConfig.Instance.CurrentRegion = mHome;
+                                    break;
+                                }
+                            }
+                            if (!bFind) {
+                                UserConfig.Instance.CurrentRegion = mHomeLists [0];
+                            }
+
+                            IO.FileUtils.DeleteAllFile ();
+                        }
+
+                    } else {
+                        //2020-01-11 
+                        var findRoom = mHomeLists.Find ((obj) => obj.Id == UserConfig.Instance.CurrentRegion.Id);
+                        if (findRoom != null && findRoom.isBindGateway) {
+                            //鍒锋柊浣忓畢 瑙e喅瀛愯处鍙烽棶棰�
+                            UserConfig.Instance.CurrentRegion = findRoom;
+                            Room.InitAllRoom ();
+                        } else {
+
+                            if (mHomeLists != null && mHomeLists.Count > 0) {
+                                var bFind = false;
+                                foreach (var mHome in mHomeLists) {
+                                    if (mHome.isBindGateway) {
+                                        bFind = true;
+                                        UserConfig.Instance.CurrentRegion = mHome;
+                                        break;
+                                    }
+                                }
+
+                                if (!bFind) {
+                                    var findRoom2 = mHomeLists.Find ((obj) => obj.IsOthreShare == false);
+                                    if (findRoom2 != null) {
+                                        UserConfig.Instance.CurrentRegion = findRoom2;
+                                    } else {
+                                        UserConfig.Instance.CurrentRegion = mHomeLists [0];
+                                    }
+                                }
+
+                                IO.FileUtils.DeleteAllFile ();
+                            }
+                        }
+                    }
+
+                    ////鍘熸柟妗�
+                    //GetAllBindGatewarysPagger (revertRoomData);
+                    ////鑾峰彇褰撳墠浣忓畢缃戝叧鏂规
+                    //GetNowHomeGateway (revertRoomData);
+                    SaveUserConfig (mHomeLists);
+                    //}
+                } else {
+                    IMessageCommon.Current.ShowErrorInfoAlter (revertObjCode);
+                }
+            } else {
+
+                //鎻愮ず鐧诲綍閿佸畾
+                if (revertObj.Code == StateCode.AccountLoginLock) {
+                    Application.RunOnMainThread (() => {
+                        ShowAccountLoginLockTip (revertObj);
+                    });
+                    return;
+                }
+                IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
+            }
+        }
+
+        //private void SetMqttHost (string URL) {
+        //    string pattern = @"(http|https)://(?<domain>[^(:|/]*)";
+
+        //    Regex reg = new Regex (pattern, RegexOptions.IgnoreCase);
+        //    Match m = reg.Match (URL);
+        //    string mResult = m.Value;
+        //    if (!string.IsNullOrEmpty (mResult)) {
+        //        MainPage.RequestHttpsHostMqtt = mResult;
+        //    }
+        //}
+
+        /// <summary>
+        /// 淇濆瓨鏁版嵁 骞跺姞杞介〉闈�
+        /// </summary>
+        /// <param name="revertRoomData"></param>
+        void SaveUserConfig (List<RegionInfoRes> revertRoomData)
+        {
+            UserConfig.Instance.SaveUserConfig ();
+            MainPage.LoginUser.LastTime = DateTime.Now;
+            if (UserConfig.Instance.CheckHomeGatewaysNotEmpty()) {
+                //UserConfig.Instance.HomeLists = revertRoomData;
+                MainPage.LoginUser.SaveUserInfo ();
+                //UserConfig.Instance.SaveUserConfig ();
+                Scene.Refresh ();
+                A31MusicModel.Refresh ();
+                Application.RunOnMainThread (() => {
+                    Close ();
+                    UserMiddle.Init (false, true);
+                    EquipmentPublicClass.CheckLinkRemote (UserConfig.Instance.internetStatus);
+                });
+            } else {
+
+                Application.RunOnMainThread (() => {
+                    UserMiddle.Init (false, true);
+                    Close ();
+                });
+            }
+
+        }
+
+        /// <summary>
+        /// 瑙f瀽鎻愮ず鐢ㄦ埛瑙i攣鏃堕棿
+        /// 瀵嗙爜閿欒娆℃暟杩囧锛岃处鍙疯閿佸畾锛佽閫氳繃蹇樿瀵嗙爜鎵惧洖瀵嗙爜鎴杮0}鍒嗛挓鍚庨噸璇�.
+        /// </summary>
+        /// <param name="loginResult"></param>
+        void ShowAccountLoginLockTip (ResponsePackNew loginResult)
+        {
+            //瀵嗙爜閿欒娆℃暟杩囧锛岃处鍙疯閿佸畾锛�
+            var tipStr = Language.StringByID (MyInternationalizationString.AccountLoginLock);
+            try {
+                if (loginResult.extra != null) {
+                    //璇烽�氳繃蹇樿瀵嗙爜鎵惧洖瀵嗙爜鎴杮0}鍒嗛挓鍚庨噸璇�.
+                    var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<AccountLoginLockExtraRes> (loginResult.extra.ToString ());
+                    string msg = Language.StringByID (MyInternationalizationString.PleaseTryToForgetPassword);
+                    //var unlockTime = Utlis.UnixToDateTimeWithFormatMS(revertData.unlockTime, "HH:mm");
+                    //msg = msg.Replace("{0}", unlockTime);
+
+                    var unlockDatetime = Utlis.UnixToDateTimeMS (revertData.unlockTime);
+                    var unlockTimeInt = unlockDatetime.Minute - DateTime.Now.Minute;
+                    if (unlockTimeInt <= 0) {
+                        unlockTimeInt = 1;
+                    }
+                    msg = msg.Replace ("{0}", unlockTimeInt.ToString ());
+                    tipStr = tipStr + "\r\n" + msg;
+                }
+            } catch { }
+
+            Utlis.ShowTip (tipStr);
+        }
+
+
+        ///// <summary>
+        ///// 鏌ヨ褰撳墠浣忓畢 缃戝叧鍒楄〃
+        ///// </summary>
+        //void GetNowHomeGateway (List<RegionInfoRes> revertRoomData)
+        //{
+
+        //    var requestObj3 = new GetSingleHomeGatewayPaggerObj ();
+        //    requestObj3.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
+        //    requestObj3.ReqDto.HomeId = UserConfig.Instance.CurrentRegion.Id;
+        //    requestObj3.ReqDto.PageSetting.Page = 1;
+        //    requestObj3.ReqDto.PageSetting.PageSize = 999;
+        //    string urlHead = MainPage.RequestHttpsHost;
+        //    if (requestObj3.IsOtherAccountCtrl) {
+        //        urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
+        //        requestObj3.ReqDto.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
+        //    }
+
+
+        //    //var requestObj3 = new GatewayByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id };
+        //    var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3);
+        //    var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3, urlHead);
+        //    if (revertObj3.StateCode.ToUpper () == StateCode.SUCCESS) {
+        //        var mGateRes = Newtonsoft.Json.JsonConvert.DeserializeObject<GetGatewayResult> (revertObj3.ResponseData.ToString ());
+        //        //var responseGatewayDataObj = mGateRes.PageData;
+        //        UserConfig.Instance.GatewayList.AddRange (mGateRes.PageData);
+        //        UserConfig.Instance.SaveUserConfig ();
+        //        MainPage.LoginUser.LastTime = DateTime.Now;
+        //        if (UserConfig.Instance.GatewayList.Count == 0) {
+        //            Application.RunOnMainThread (() => {
+        //                UserMiddle.Init ();
+        //                Close ();
+        //            });
+        //            return;
+        //        } else {
+        //            UserConfig.Instance.HomeLists = revertRoomData;
+        //            MainPage.LoginUser.SaveUserInfo ();
+        //            UserConfig.Instance.SaveUserConfig ();
+        //            Scene.Refresh ();
+        //            A31MusicModel.Refresh ();
+        //            Application.RunOnMainThread (() => {
+        //                Close ();
+        //                UserMiddle.Init ();
+        //                EquipmentPublicClass.CheckLinkRemote (2);
+        //            });
+        //        }
+        //    } else {
+        //        Application.RunOnMainThread (() => {
+        //            new Alert ("", ErrorCode.FailedGetGatewaysForHome, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+        //        });
+
+        //    }
+
+
+        //}
+
+        ///// <summary>
+        ///// GetAllBindGatewarysPagger
+        ///// </summary>
+        ///// <param name="revertRoomData"></param>
+        //void GetAllBindGatewarysPagger (List<RegionInfoRes> revertRoomData) {
+
+        //    var gatewayListObj = new GetAllBindGatewarysPaggerObj ();
+        //    gatewayListObj.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
+
+        //    //var gatewayListObj = new GatewayListObj ();
+        //    var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj);
+        //    var gatewayListRevertObj = MainPage.RequestHttps (API.GetAllBindGatewarysPagger, gatewayListJson);
+        //    if (gatewayListRevertObj.StateCode.ToUpper () == StateCode.SUCCESS) {
+        //        UserConfig.Instance.GatewayList.Clear ();
+
+        //        var mGateRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AllBindGatewarysPaggerRes> (gatewayListRevertObj.ResponseData.ToString ());
+        //        //var responseGatewayDataObj = mGateRes.PageData;
+        //        UserConfig.Instance.GatewayList.AddRange (mGateRes.PageData);
+        //        UserConfig.Instance.SaveUserConfig ();
+        //        MainPage.LoginUser.LastTime = DateTime.Now;
+        //        if (UserConfig.Instance.GatewayList.Count == 0) {
+        //            Application.RunOnMainThread (() => {
+        //                UserMiddle.Init ();
+        //                Close ();
+        //            });
+        //            return;
+        //        } else {
+        //            UserConfig.Instance.HomeLists = revertRoomData;
+        //            MainPage.LoginUser.SaveUserInfo ();
+        //            UserConfig.Instance.SaveUserConfig ();
+        //            Scene.Refresh ();
+        //            A31MusicModel.Refresh ();
+        //            Application.RunOnMainThread (() => {
+        //                Close ();
+        //                UserMiddle.Init ();
+        //                EquipmentPublicClass.CheckLinkRemote (2);
+        //            });
+        //        }
+        //    } else {
+        //        //GetAllBindGatewarysPagger 澶辫触鎻愮ず
+        //        ShowGetAllBindGatewarysPaggerErrorInfo (gatewayListRevertObj.StateCode);
+        //    }
+        //}
+
+
+
+
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0