JLChen
2021-01-06 f60ce72c3c29c7d31a046795c88ec39a69e73d45
Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs
@@ -236,30 +236,34 @@
                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);
                    });
                    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)) {
                    Application.RunOnMainThread (() => {
                        new Tip () { Text = Language.StringByID (R.MyInternationalizationString.PleaseCheckEmailAddressCorrectly), Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
                    });
                    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;
                }
@@ -279,25 +283,28 @@
                        });
                        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;
                        }
                        var revertConnectionObj = MainPage.RequestHttps (API.Connection, "");
                        if (revertConnectionObj.StateCode.ToUpper() == "SUCCESS") {
                            Application.RunOnMainThread (() => {
                                if (Language.CurrentLanguage == "Chinese") {
                                    MainPage.Loading.Start ("链接服务器成功...");
                                } else {
                                    MainPage.Loading.Start ("Link server successful...");
                                }
                            });
                            Login (account, password, accountListDB);
                        } else {
                            MainPage.FailureToServer ();
                        }
                        //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...");
                        //        }
                        //    });
                        //    Login (account, password, accountListDB);
                        //} else {
                        //    MainPage.FailureToServer ();
                        //}
                    } catch (Exception ex) {
                        MainPage.FailureToServer ();
@@ -445,15 +452,9 @@
        /// <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 ();
                //}
            //登录
            var revertObj = HttpServerRequest.Current.LoginByPassword (account, password);
            if (revertObj.Code == StateCode.SUCCESS) {
                if (accountListDB.account.Contains (account)) {
                    accountListDB.account.Remove (account);
@@ -461,52 +462,34 @@
                accountListDB.account.Add (account);
                accountListDB.SaveAccountListDB ();
                var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes> (revertObj.ResponseData.ToString ());
                var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes> (revertObj.Data.ToString ());
                var revertData = responseDataObj;
                MainPage.LoginUser = new UserInfo {
                    LoginToken = revertData.Token,
                    ID = revertData.UserId,
                    MainUserId = revertData.MainUserId,
                    AccountType = revertData.UserType,
                    UserType = revertData.userType,
                    AccountString = account,
                    Password = password,
                    LastTime = DateTime.Now,
                    AllVisionRegisterDevUserNameGuid = revertData.AllVisionRegisterDevUserNameGuid,
                    Name = revertData.Contact,
                    Guid = revertData.Guid,
                    MD5PWD = revertData.MD5PWD,
                    ID = revertData.userId,
                    LoginTokenString = revertData.headerPrefix + revertData.accessToken,
                    RefreshToken = revertData.refreshToken,
                };
                //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;
                //获取住宅列表
                var revertObjCode = HttpServerRequest.Current.GetHomePager ();
                if (revertObjCode == StateCode.SUCCESS) {
                    var mHomeLists = UserConfig.Instance.HomeLists;
                    if (UserConfig.Instance.CurrentRegion == null) {
                        if (revertRoomData != null && revertRoomData.Count > 0) {
                        if (mHomeLists != null && mHomeLists.Count > 0) {
                            var bFind = false;
                            foreach (var mHome in revertRoomData) {
                                if (UserConfig.Instance.CheckThisHomeGatewaysNotEmpty (mHome)) {
                            foreach (var mHome in mHomeLists) {
                                if (mHome.isBindGateway) {
                                    bFind = true;
                                    UserConfig.Instance.CurrentRegion = mHome;
                                    break;
                                }
                            }
                            if (!bFind) {
                                UserConfig.Instance.CurrentRegion = revertRoomData [0];
                                UserConfig.Instance.CurrentRegion = mHomeLists [0];
                            }
                            IO.FileUtils.DeleteAllFile ();
@@ -514,18 +497,18 @@
                    } else {
                        //2020-01-11 
                        var findRoom = revertRoomData.Find ((obj) => obj.Id == UserConfig.Instance.CurrentRegion.Id);
                        if (findRoom != null && UserConfig.Instance.CheckThisHomeGatewaysNotEmpty (findRoom)) {
                        var findRoom = mHomeLists.Find ((obj) => obj.Id == UserConfig.Instance.CurrentRegion.Id);
                        if (findRoom != null && findRoom.isBindGateway) {
                            //刷新住宅 解决子账号问题
                            UserConfig.Instance.CurrentRegion = findRoom;
                            Room.InitAllRoom ();
                        } else {
                            //if (findRoom == null) {
                            if (revertRoomData != null && revertRoomData.Count > 0) {
                            if (mHomeLists != null && mHomeLists.Count > 0) {
                                var bFind = false;
                                foreach (var mHome in revertRoomData) {
                                    if (UserConfig.Instance.CheckThisHomeGatewaysNotEmpty (mHome)) {
                                foreach (var mHome in mHomeLists) {
                                    if (mHome.isBindGateway) {
                                        bFind = true;
                                        UserConfig.Instance.CurrentRegion = mHome;
                                        break;
@@ -535,11 +518,11 @@
                                //    UserConfig.Instance.CurrentRegion = revertRoomData [0];
                                //}
                                if (!bFind) {
                                    var findRoom2 = revertRoomData.Find ((obj) => obj.IsOthreShare == false);
                                    var findRoom2 = mHomeLists.Find ((obj) => obj.IsOthreShare == false);
                                    if (findRoom2 != null) {
                                        UserConfig.Instance.CurrentRegion = findRoom2;
                                    } else {
                                        UserConfig.Instance.CurrentRegion = revertRoomData [0];
                                        UserConfig.Instance.CurrentRegion = mHomeLists [0];
                                    }
                                }
@@ -558,60 +541,13 @@
                    //GetAllBindGatewarysPagger (revertRoomData);
                    ////获取当前住宅网关方案
                    //GetNowHomeGateway (revertRoomData);
                    SaveUserConfig (revertRoomData);
                    SaveUserConfig (mHomeLists);
                    //}
                } else {
                    //GetHomePager 失败提示
                    ShowGetHomePagerErrorInfo (revertObj2.StateCode);
                    IMessageCommon.Current.ShowErrorInfoAlter (revertObjCode);
                }
            } 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;
                    if (CommonConfig.Current.ErrorLockListUpdate (account)) {
                        return;
                    }
                } 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;
                    //正则处理
                    //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 ();
                    });
                }
                IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
            }
        }
@@ -679,7 +615,7 @@
        //    //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") {
        //    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);
@@ -725,7 +661,7 @@
        //    //var gatewayListObj = new GatewayListObj ();
        //    var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj);
        //    var gatewayListRevertObj = MainPage.RequestHttps (API.GetAllBindGatewarysPagger, gatewayListJson);
        //    if (gatewayListRevertObj.StateCode.ToUpper () == "SUCCESS") {
        //    if (gatewayListRevertObj.StateCode.ToUpper () == StateCode.SUCCESS) {
        //        UserConfig.Instance.GatewayList.Clear ();
        //        var mGateRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AllBindGatewarysPaggerRes> (gatewayListRevertObj.ResponseData.ToString ());