陈嘉乐
2020-12-01 e08a444a9d7acea0cf39f50d22d29179f6a59292
HDL_ON/UI/UI1-Login/RegisterPageBLL.cs
@@ -21,6 +21,7 @@
            LoadEvent_Register();
            LoadEvent_LimtPasswordLength();
            LoadEvent_TextChange();
            LoadEvent_Server();
            //var areaCodeList = pm.GetAreaCode();
        }
        /// <summary>
@@ -30,11 +31,11 @@
        {
            etAccount.TextChangeEventHandler = (sender, e) =>
            {
                Regex reg = new Regex(@"^[1]+\d{10}");
                var mFalg = reg.Match(etAccount.Text.Trim());
                //Regex reg = new Regex(@"^[1]+\d{10}");
                //var mFalg = reg.Match(etAccount.Text.Trim());
                if (registerType == 0)//手机注册获取验证码按钮生效条件
                {
                    if (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11)
                    if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode))
                    {
                        btnGetVerificationCode_Phone.IsSelected = false;
                    }
@@ -46,7 +47,7 @@
                }
                else//邮箱注册获取验证码按钮生效条件
                {
                    if (!mFalg.Success)
                    if (!Utlis.CheckEmail(etAccount.Text.Trim()))
                    {
                        btnGetVerificationCode_Mail.IsSelected = false;
                    }
@@ -68,10 +69,11 @@
            //选择手机注册
            btnPhoneLogin.MouseUpEventHandler = (sender, e) =>
            {
                if(registerType == 0)
                if (registerType == 0)
                {
                    return;
                }
                etAccount.IsNumberKeyboardType = true;
                etAccount.Text = registerPhone;
                etPassword.Text = "";
                etRepeatPassword.Text = "";
@@ -100,6 +102,8 @@
            {
                if (registerType == 1)
                    return;
                etAccount.IsNumberKeyboardType = false;
                etAccount.Text = registerEmail;
                etPassword.Text = "";
                etRepeatPassword.Text = "";
@@ -148,9 +152,7 @@
                    {
                        if (registerType == 0)
                        {
                            Regex reg = new Regex(@"^[1]+\d{10}");
                            var mFalg = reg.Match(etAccount.Text.Trim());
                            if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
                            if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode))
                            {
                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
@@ -179,10 +181,7 @@
                        else if (registerType == 1)
                        {
                            //邮箱注册-验证邮箱是否正确
                            var reg = new Regex("^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$");
                            //Regex.IsMatch(etAccount.Text.Trim(), "([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,5})+");
                            var mFalg = reg.Match(etAccount.Text.Trim());
                            if (!mFalg.Success)
                            if (!Utlis.CheckEmail(etAccount.Text.Trim()))
                            {
                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
@@ -208,7 +207,7 @@
                            }
                        }
                    }
                    if(accountType ==0)
                    if (accountType == 0)
                    {
                        registerPhone = etAccount.Text.Trim();
                    }
@@ -366,74 +365,125 @@
        void LoadEvent_GetVerificationCode()
        {
            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
           {
               if ((sender as Button).IsSelected)
               {
                   (sender as Button).IsSelected = false;
                   string account = etAccount.Text.Trim();
                   //短信发送间隔60s
                   int time = 60;
                   new Thread(() =>
                   {
                       while (time > 0)
                       {
                           time--;
                           Application.RunOnMainThread(() =>
                           {
                               (sender as Button).Text = time.ToString() + "s";
                           });
                           Thread.Sleep(1000);
                       }
                       Application.RunOnMainThread(() =>
                       {
                           //回复获取短信按钮事件
                           (sender as Button).IsSelected = true;
                           (sender as Button).TextID = StringId.GetVerificationCode;
                       });
                   })
                   { IsBackground = true }.Start();
                   new Thread(() =>
                   {
                       //获取验证码
                       var result = pm.GetRegisterVerCode(account);
                       if (result.StateCode.ToUpper() == "SUCCESS")
                       {
                       }
                       else
                       {
                           string tipString = "Server error";
                           switch (result.StateCode)
                           {
                               case "Exist":
                                   tipString = Language.StringByID(StringId.AccountAlreadyUse);
                                   break;
                               case "SendFail":
                                   tipString = Language.StringByID(StringId.FailedToSendVerificationCode);
                                   break;
                               case "Self:Net_Error":
                                   tipString = Language.StringByID(StringId.NetworkAnomaly);
                                   break;
                               case "ParameterOrEmpty":
                                   if (registerType == 0)
                                       tipString = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber);
                                   else
                                       tipString = Language.StringByID(StringId.PlsEntryCorrectEmailAddress);
                                   break;
                           }
                           Application.RunOnMainThread(() =>
                           {
                               new Tip()
                               {
                                   CloseTime = 1,
                                   Direction = AMPopTipDirection.None,
                                   Text = tipString
                               }.Show(bodyView);
                           });
                       }
                   })
                   { IsBackground = true }.Start();
               }
           };
            {
                if ((sender as Button).IsSelected)
                {
                    //判断是否选择了服务器,选择了才能发送验证码
                    if (CheckIfSelectServer() == false) return;
                    string account = etAccount.Text.Trim();
                    int time = 60;
                    new Thread(() =>
                    {
                        //1.先检查账号是否注册过
                        var result = pm.GetRegionByAccount(account);
                        //2.账号不存在,才允许继续注册
                        if (result.Code == StateCode.ACCOUNT_NOT_EXIST)
                        {
                            //账号不存在 未注册允许发送验证码注册
                            Application.RunOnMainThread(() =>
                            {
                                //短信发送间隔60s
                                (sender as Button).IsSelected = false;
                            });
                            //2.1 开始倒计时
                            new Thread(() =>
                            {
                                while (time > 0)
                                {
                                    time--;
                                    Application.RunOnMainThread(() =>
                                    {
                                        (sender as Button).Text = time.ToString() + "s";
                                    });
                                    Thread.Sleep(1000);
                                }
                                Application.RunOnMainThread(() =>
                                {
                                    //回复获取短信按钮事件
                                    (sender as Button).IsSelected = true;
                                    (sender as Button).TextID = StringId.GetVerificationCode;
                                });
                            })
                            { IsBackground = true }.Start();
                            //2.2  获取验证码
                            ResponsePackNew resultObj;
                            if (registerType == 1)//邮箱
                            {
                                resultObj = pm.VerificationCodeSend(VerifyType.REGISTER_USER, account);
                            }
                            else
                            {
                                resultObj = pm.VerificationCodeSend(VerifyType.REGISTER_USER, account, true, phoneZoneCode);
                            }
                            if (resultObj.Code != StateCode.SUCCESS)
                            {
                                // 提示错误
                                IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
                            }
                        }
                        else if (result.Code.ToUpper() == StateCode.SUCCESS)
                        {
                            //3.提示账号已存在,无法重复注册
                            Utlis.ShowAlertOnMainThread(Language.StringByID(StringId.AccountAlreadyUse));
                        }
                        else
                        {
                            //4.提示其它异常错误
                            IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
                        }
                    })
                    { IsBackground = true }.Start();
                    //(sender as Button).IsSelected = false;
                    //string account = etAccount.Text.Trim();
                    ////短信发送间隔60s
                    //int time = 60;
                    //new Thread(() =>
                    //{
                    //    while (time > 0)
                    //    {
                    //        time--;
                    //        Application.RunOnMainThread(() =>
                    //        {
                    //            (sender as Button).Text = time.ToString() + "s";
                    //        });
                    //        Thread.Sleep(1000);
                    //    }
                    //    Application.RunOnMainThread(() =>
                    //    {
                    //       //回复获取短信按钮事件
                    //       (sender as Button).IsSelected = true;
                    //        (sender as Button).TextID = StringId.GetVerificationCode;
                    //    });
                    //})
                    //{ IsBackground = true }.Start();
                    //new Thread(() =>
                    //{
                    //    ResponsePackNew resultObj;
                    //    // 获取验证码
                    //    if (registerType == 1)//邮箱
                    //    {
                    //         resultObj = pm.VerificationCodeSend(VerifyType.REGISTER_USER, account);
                    //    }
                    //    else
                    //    {
                    //         resultObj = pm.VerificationCodeSend(VerifyType.REGISTER_USER, account, true, phoneZoneCode);
                    //    }
                    //    if (resultObj.Code != StateCode.SUCCESS_CODE)
                    //    {
                    //       // 提示错误
                    //       IMessageCommon.Current.ShowErrorInfoAlter(NewAPI.API_POST_Verification_Send, resultObj.Code);
                    //    }
                    //})
                    //{ IsBackground = true }.Start();
                }
            };
            btnGetVerificationCode_Phone.MouseDownEventHandler = eventHandler;
            btnGetVerificationCode_Mail.MouseDownEventHandler = eventHandler;
@@ -446,7 +496,7 @@
        {
            btnRegister.MouseUpEventHandler = (sender, e) =>
            {
                if(etPassword.Text.Trim().Length > 13 || etPassword.Text.Trim().Length<6)
                if (etPassword.Text.Trim().Length > 13 || etPassword.Text.Trim().Length < 6)
                {
                    new Tip()
                    {
@@ -458,6 +508,9 @@
                }
                if (btnRegister.IsSelected)
                {
                    //判断是否选择了服务器,选择了才能发送验证码
                    if (CheckIfSelectServer() == false) return;
                    waitPage = new Loading();
                    new PublicAssmebly().LoadPage_WaitPage(LoadMethod_RegisterThread(), bodyView, waitPage);
                }
@@ -477,10 +530,10 @@
            {
                try
                {
                    //校验验证码/注册账号
                    var validateSmsResult = pm.ValidataCodeAndRegister(account, password, entryPassword, verCode, 86);
                    //验证码校验成功
                    if (validateSmsResult.StateCode.ToUpper() == "SUCCESS")
                    //校验验证码并注册账号
                    var isPhone = registerType == 0;
                    var validateSmsResult = pm.ValidataCodeAndRegister(account, password, verCode, isPhone);
                    if (validateSmsResult.Code == StateCode.SUCCESS)
                    {
                        //注册成功
                        //执行回调事件
@@ -491,41 +544,45 @@
                            LoadEvent_AutoLogin(account, password);
                        });
                    }
                    else//注册失败
                    else// 注册失败
                    {
                        string erorrInfo = "";
                        switch (validateSmsResult.StateCode)
                        {
                            case "Exist":
                                erorrInfo = Language.StringByID(StringId.AccountAlreadyUse);
                                break;
                            case "PwdNoConfirm":
                                erorrInfo = Language.StringByID(StringId.IncorrectRepeatPassword);
                                break;
                            case "ValidCodeAndPhoneNoEqual":
                                erorrInfo = Language.StringByID(StringId.VerificationCodeWrong);
                                break;
                            case "NoRecord":
                                erorrInfo = Language.StringByID(StringId.PlsGetTheVerificationCode);
                                Application.RunOnMainThread(() =>
                                {
                                    btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                                    btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
                                });
                                break;
                            default:
                                erorrInfo = Language.StringByID(StringId.RegistrationFailedPleaseTryAgain);
                                break;
                        }
                        Application.RunOnMainThread(() =>
                        {
                            new Tip()
                            {
                                CloseTime = 1,
                                Direction = AMPopTipDirection.None,
                                Text = erorrInfo,
                            }.Show(bodyView);
                        });
                        // 提示错误
                        IMessageCommon.Current.ShowErrorInfoAlter(validateSmsResult.Code);
                        //2020-11-13 待修改
                        //string erorrInfo = "";
                        //switch (validateSmsResult.StateCode)
                        //{
                        //    case "Exist":
                        //        erorrInfo = Language.StringByID(StringId.AccountAlreadyUse);
                        //        break;
                        //    case "PwdNoConfirm":
                        //        erorrInfo = Language.StringByID(StringId.IncorrectRepeatPassword);
                        //        break;
                        //    case "ValidCodeAndPhoneNoEqual":
                        //        erorrInfo = Language.StringByID(StringId.VerificationCodeWrong);
                        //        break;
                        //    case "NoRecord":
                        //        erorrInfo = Language.StringByID(StringId.PlsGetTheVerificationCode);
                        //        Application.RunOnMainThread(() =>
                        //        {
                        //            btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                        //            btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
                        //        });
                        //        break;
                        //    default:
                        //        erorrInfo = Language.StringByID(StringId.RegistrationFailedPleaseTryAgain);
                        //        break;
                        //}
                        //Application.RunOnMainThread(() =>
                        //{
                        //    new Tip()
                        //    {
                        //        CloseTime = 1,
                        //        Direction = AMPopTipDirection.None,
                        //        Text = erorrInfo,
                        //    }.Show(bodyView);
                        //});
                    }
                }
                catch (Exception ex)
@@ -541,5 +598,78 @@
                }
            });
        }
        /// <summary>
        /// 加载服务器选择按钮事件
        /// </summary>
        void LoadEvent_Server()
        {
            //判断之前是否选择过
            if (UserInfo.Current.GlobalRegion != null && !string.IsNullOrEmpty(UserInfo.Current.GlobalRegion.regionUrl))
            {
                SetServerText();
            }
            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
            {
                Action selectAction = () =>
                {
                    //服务器选择过标记为true
                    SetServerText();
                };
                new SelectServerDialog(selectAction).LoadPage();
            };
            btnServerGo.MouseUpEventHandler = eventHandler;
            btnServerText.MouseUpEventHandler = eventHandler;
        }
        /// <summary>
        /// 检测是否选择了服务器
        /// </summary>
        /// <returns></returns>
        private bool CheckIfSelectServer()
        {
            if (isSelectServer == false)
            {
                //请先选择国家/区域
                Utlis.ShowTip(Language.StringByID(StringId.PleaseSelectCountryOrRegion));
                ShowServerBottomLineState(true);
                return false;
            }
            return true;
        }
        /// <summary>
        /// 服务器下划线样式
        /// </summary>
        /// <param name="isError"></param>
        void ShowServerBottomLineState(bool isError)
        {
            if (isError)
            {
                btnServerBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                btnServerBottomLine.Height = Application.GetRealHeight(2);
            }
            else
            {
                btnServerBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                btnServerBottomLine.Height = Application.GetRealHeight(1);
            }
        }
        /// <summary>
        ///
        /// </summary>
        void SetServerText()
        {
            //服务器选择过标记为true
            isSelectServer = true;
            ShowServerBottomLineState(false);
            btnServerText.TextColor = CSS_Color.FirstLevelTitleColor;
            btnServerText.Text = UserInfo.Current.GlobalRegion.regionName;
        }
    }
}