From d8545fbd1b36a6766c57c987e5d89862b470fed9 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 03 九月 2020 09:46:29 +0800
Subject: [PATCH] 2020-09-03 1.修改风扇默认为关状态。2.Alexa添加设备时,去掉空调和通用开关选择添加支持。 3.场景增加通用开关添加和发送控制支持,Alexa 的场景同样增加通用开关的支持。

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs |  521 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 421 insertions(+), 100 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs
index 72ab748..ed63141 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs
@@ -3,6 +3,7 @@
 using System.Collections.Generic;
 using System.Security.Cryptography;
 using System.Text;
+using System.Text.RegularExpressions;
 
 namespace Shared.SimpleControl.Phone
 {
@@ -18,7 +19,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 +35,7 @@
             FrameLayout logoView = new FrameLayout () {
                 Height = Application.GetRealHeight (400),
             };
-           bodyView.AddChidren (logoView);
+            bodyView.AddChidren (logoView);
 
             //FrameLayout textView = new FrameLayout () {
             //    Y = logoView.Bottom,
@@ -49,7 +50,7 @@
             //AddChidren (buttonView);
 
             Button btnLogo = new Button () {
-                Y = Application.GetRealHeight(30),
+                Y = Application.GetRealHeight (30),
                 Height = Application.GetRealHeight (430),
                 UnSelectedImagePath = MainPage.RegisterLogoString,
             };
@@ -63,7 +64,7 @@
                 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 +74,16 @@
                 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";
+#endif
+
             accountView.AddChidren (etAccount);
 
             var userConfigBytes = IO.FileUtils.ReadFile ("AccountListDB");
@@ -91,6 +97,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),
@@ -107,30 +120,31 @@
                 Y = accountView.Bottom + Application.GetRealHeight (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";
+#endif
             passwrodView.AddChidren (etPasswrod);
 
             Button btnShowPassword = new Button () {
-                X = etPasswrod.Right ,
+                X = etPasswrod.Right,
                 Y = etPasswrod.Y + Application.GetRealHeight (12),
-                Width = Application.GetRealWidth (73),
-                Height = Application.GetRealHeight (60),
-                UnSelectedImagePath = "CrabtreeAdd/ShowPW.png",
-                SelectedImagePath = "CrabtreeAdd/HidePW.png",
+                Width = Application.GetMinRealAverage (73),
+                Height = Application.GetMinRealAverage (60),
+                UnSelectedImagePath = "CrabtreeAdd/HidePW.png",
+                SelectedImagePath = "CrabtreeAdd/ShowPW.png", 
                 BorderColor = SkinStyle.Current.Transparent,
                 BorderWidth = 2,
                 Radius = 1
@@ -154,13 +168,17 @@
                 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),
@@ -176,7 +194,7 @@
                 Close ();
                 new AccountRegistration_Crabtree ().Show ();
             };
-           bodyView.AddChidren (btnRegister);
+            bodyView.AddChidren (btnRegister);
 
             Button btnForgotPassword = new Button () {
                 Width = Application.GetRealWidth (500 / 2),
@@ -192,13 +210,13 @@
                 new ForgotPassword ().Show ();
                 this.Close ();
             };
-           bodyView.AddChidren (btnForgotPassword);
+            bodyView.AddChidren (btnForgotPassword);
 
             Button btnLogin = new Button () {
                 Width = Application.GetRealWidth (504),
                 Height = Application.GetRealHeight (89),
                 X = Application.GetRealWidth (60),
-                Y = btnRegister.Bottom + Application.GetRealHeight(70),
+                Y = btnRegister.Bottom + Application.GetRealHeight (70),
                 BackgroundColor = SkinStyle.Current.MainColor,
                 SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
                 TextID = R.MyInternationalizationString.Login,
@@ -208,7 +226,7 @@
                 BorderColor = SkinStyle.Current.Transparent,
                 BorderWidth = 0,
             };
-           bodyView.AddChidren (btnLogin);
+            bodyView.AddChidren (btnLogin);
             btnLogin.MouseDownEventHandler += (sender, e) => {
                 btnLogin.IsSelected = true;
             };
@@ -223,7 +241,7 @@
                     });
                     return;
                 }
-                if (string.IsNullOrEmpty (account) ) {
+                if (string.IsNullOrEmpty (account)) {
                     Application.RunOnMainThread (() => {
                         new Tip () { Text = "Please enter your user id.", Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
                     });
@@ -244,15 +262,15 @@
                                 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);
+                                new Tip () { Text = "Network abnormal, unable to connect to the Internet", Direction = AMPopTipDirection.Down, CloseTime = 3 }.Show (btnLogo);
                             });
                             return;
                         }
 
-                        var revertConnectionObj = MainPage.RequestHttps ("Connection", "");
-                        if (revertConnectionObj.StateCode == "SUCCESS") {
+                        var revertConnectionObj = MainPage.RequestHttps (API.Connection, "");
+                        if (revertConnectionObj.StateCode.ToUpper() == "SUCCESS") {
                             Application.RunOnMainThread (() => {
                                 if (Language.CurrentLanguage == "Chinese") {
                                     MainPage.Loading.Start ("閾炬帴鏈嶅姟鍣ㄦ垚鍔�...");
@@ -261,93 +279,33 @@
                                 }
                             });
 
-                            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 ();
-                                }
-
-                                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);
-                                            });
-                                        }
-                                    }
-                                }
-                            }
+                            Login (account, password, accountListDB);
+                        } else {
+                            MainPage.FailureToServer ();
                         }
+
                     } 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 +337,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 +374,369 @@
 
 
         }
+
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="stateCodeStr"></param>
+        void ShowGetHomePagerErrorInfo (string stateCodeStr)
+        {
+            string mes = "";
+            //2020-01-06 寰呰ˉ鍏�
+            if (stateCodeStr == ErrorCode.NetworkError) {
+                mes = ErrorCode.NetworkError;
+            } else {
+                mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
+
+            }
+            if (!string.IsNullOrEmpty (mes)) {
+                Application.RunOnMainThread (() => {
+                    new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+                });
+            }
+
+
+        }
+
+
+        ///// <summary>
+        ///// 
+        ///// </summary>
+        ///// <param name="stateCodeStr"></param>
+        //void ShowGetAllBindGatewarysPaggerErrorInfo (string stateCodeStr)
+        //{
+        //    string mes = "";
+        //    //2020-01-06 寰呰ˉ鍏�
+        //    if (stateCodeStr == ErrorCode.NetworkError) {
+        //        mes = ErrorCode.NetworkError;
+        //    } else {
+        //        mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
+
+        //    }
+        //    if (!string.IsNullOrEmpty (mes)) {
+        //        Application.RunOnMainThread (() => {
+        //            new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+        //        });
+        //    }
+
+
+        //}
+
+        /// <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 requestObj = new LoginObj () { Account = account, Password = password, Company = MainPage.SoftSmsType };
+            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
+            var revertObj = MainPage.RequestHttps (API.Login, requestJson);
+            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
+
+                //if (!accountListDB.account.Contains (account)) {
+                //    accountListDB.account.Add (account);
+                //    accountListDB.SaveAccountListDB ();
+                //}
+
+                if (accountListDB.account.Contains (account)) {
+                    accountListDB.account.Remove (account);
+                }
+                accountListDB.account.Add (account);
+                accountListDB.SaveAccountListDB ();
+
+                var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes> (revertObj.ResponseData.ToString ());
+                var revertData = responseDataObj;
+                MainPage.LoginUser = new UserInfo {
+                    LoginToken = revertData.Token,
+                    ID = revertData.UserId,
+                    MainUserId = revertData.MainUserId,
+                    AccountType = revertData.UserType,
+                    AccountString = account,
+                    Password = password,
+                    LastTime = DateTime.Now,
+                    AllVisionRegisterDevUserNameGuid = revertData.AllVisionRegisterDevUserNameGuid,
+                    Name = revertData.Contact,
+                    Guid = revertData.Guid,
+                    MD5PWD = revertData.MD5PWD,
+                    
+
+                };
+                //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 GetHomePagerObj ();
+                requestObj2.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
+
+                var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
+                var revertObj2 = MainPage.RequestHttps (API.GetHomePager, requestJson2);
+
+                if (revertObj2.StateCode.ToUpper () == "SUCCESS") {
+                    var mResidenceRes = Newtonsoft.Json.JsonConvert.DeserializeObject<ResidenceRes> (revertObj2.ResponseData.ToString ());
+                    //if (mResidenceRes.TotalCount != 0) {
+                    //    //褰撲綇瀹呬负绌烘椂鍏堟彁绀虹敤鎴锋柊寤轰綇瀹�
+                    //} else {
+                    var revertRoomData = mResidenceRes.PageData;
+                    UserConfig.Instance.HomeLists = revertRoomData;
+
+                    if (UserConfig.Instance.CurrentRegion == null) {
+                        if (revertRoomData != null && revertRoomData.Count > 0) {
+                            var bFind = false;
+                            foreach (var mHome in revertRoomData) {
+                                if (UserConfig.Instance.CheckThisHomeGatewaysNotEmpty (mHome)) {
+                                    bFind = true;
+                                    UserConfig.Instance.CurrentRegion = mHome;
+                                    break;
+                                }
+                            }
+                            if (!bFind) {
+                                UserConfig.Instance.CurrentRegion = revertRoomData [0];
+                            }
+
+                            IO.FileUtils.DeleteAllFile ();
+                        }
+
+                    } else {
+                        //2020-01-11 
+                        var findRoom = revertRoomData.Find ((obj) => obj.Id == UserConfig.Instance.CurrentRegion.Id);
+                        if (findRoom != null && UserConfig.Instance.CheckThisHomeGatewaysNotEmpty (findRoom)) {
+                            //鍒锋柊浣忓畢 瑙e喅瀛愯处鍙烽棶棰�
+                            UserConfig.Instance.CurrentRegion = findRoom;
+                            Room.InitAllRoom ();
+                        } else {
+
+                            //if (findRoom == null) {
+                            if (revertRoomData != null && revertRoomData.Count > 0) {
+                                var bFind = false;
+                                foreach (var mHome in revertRoomData) {
+                                    if (UserConfig.Instance.CheckThisHomeGatewaysNotEmpty (mHome)) {
+                                        bFind = true;
+                                        UserConfig.Instance.CurrentRegion = mHome;
+                                        break;
+                                    }
+                                }
+                                //if (!bFind) {
+                                //    UserConfig.Instance.CurrentRegion = revertRoomData [0];
+                                //}
+                                if (!bFind) {
+                                    var findRoom2 = revertRoomData.Find ((obj) => obj.IsOthreShare == false);
+                                    if (findRoom2 != null) {
+                                        UserConfig.Instance.CurrentRegion = findRoom2;
+                                    } else {
+                                        UserConfig.Instance.CurrentRegion = revertRoomData [0];
+                                    }
+                                }
+
+                                IO.FileUtils.DeleteAllFile ();
+                            }
+                            //}else {
+                            //    //鍒锋柊浣忓畢 瑙e喅瀛愯处鍙烽棶棰�
+                            //    UserConfig.Instance.CurrentRegion = findRoom;
+                            //    Room.InitAllRoom ();
+                            //}
+                        }
+
+
+                }
+                    ////鍘熸柟妗�
+                    //GetAllBindGatewarysPagger (revertRoomData);
+                    ////鑾峰彇褰撳墠浣忓畢缃戝叧鏂规
+                    //GetNowHomeGateway (revertRoomData);
+                    SaveUserConfig (revertRoomData);
+                    //}
+                } else {
+                    //GetHomePager 澶辫触鎻愮ず
+                    ShowGetHomePagerErrorInfo (revertObj2.StateCode);
+                }
+            } else {
+
+                string stateCodeStr = revertObj.StateCode;
+                string mes = "";
+                if (stateCodeStr == "NOTVERIFY") {
+                    //鏈縺娲�
+                    mes = ErrorCode.NOTVERIFY;
+                }
+                //else if (stateCodeStr == "NOTENABLE") {
+
+                //    //璇ョ敤鎴峰睘浜庤皟璇曡处鍙凤紝骞舵湭鍚敤
+                //    mes = "鐢ㄦ埛灞炰簬璋冭瘯璐﹀彿锛屽苟鏈惎鐢�";
+                //}
+                else if (stateCodeStr == "USERNAMEORPWDERROR") {
+                    //璐﹀彿鎴栧瘑鐮侀敊璇�
+                    mes = ErrorCode.USERNAMEORPWDERROR;
+                } else if (stateCodeStr == "ACCOUNTNOEXISTS") {
+                    //璐﹀彿涓嶅瓨鍦�
+                    mes = ErrorCode.ACCOUNTNOEXISTS;
+                } else if (stateCodeStr == "YOUDATANOISLOCALREGION") {
+                    //涓嶅湪鏈尯鍩燂紝闇�瑕侀噸瀹氬悜鍖哄煙鍚庡啀娆¤姹傜櫥褰�
+                    if (revertObj.ResponseData == null) {
+                        return;
+                    }
+                    var responseDataObj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginLocalRegionRes> (revertObj.ResponseData.ToString ());
+                    MainPage.RequestHttpsHost = responseDataObj2.RegionServer;
+                    //姝e垯澶勭悊
+                    //MainPage.RequestHttpsHostMqtt =
+                    SetMqttHost (responseDataObj2.RegionServer);
+         
+                    ////鍐嶆鐧诲綍
+                    Login (account, password, accountListDB);
+                } else {
+                    //RequestServerFailed
+                    mes = ErrorCode.LoginFailed + ErrorCode.Reason + stateCodeStr;
+                }
+
+
+                if (!string.IsNullOrEmpty (mes)) {
+                    Application.RunOnMainThread (() => {
+                        new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+                    });
+                }
+
+            }
+        }
+
+        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>
+        ///// 鏌ヨ褰撳墠浣忓畢 缃戝叧鍒楄〃
+        ///// </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 () == "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 () == "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