JLChen
2021-01-11 5a5a2b696866f947b6025d26c3302e8ffef46435
Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs
@@ -1,8 +1,6 @@
using Shared.SimpleControl;
using System;
using 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) {
                            //刷新住宅 解决子账号问题
                            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>
        /// 解析提示用户解锁时间
        /// 密码错误次数过多,账号被锁定!请通过忘记密码找回密码或{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);
        //    }
        //}
    }
}