wxr
2019-12-06 9aa32bd5ed75d54b2141b6c91f163d43216a3643
HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs
@@ -19,6 +19,28 @@
            LoadEvent_ChangeTextVisble();
            LoadEvent_GetVerificationCode();
            LoadEvent_Register();
            LoadEvent_TextChange();
            //var areaCodeList = pm.GetAreaCode();
        }
        /// <summary>
        /// 加载文本变化事件
        /// </summary>
        void LoadEvent_TextChange()
        {
            etAccount.TextChangeEventHandler += (sender, e) =>
            {
                Regex reg = new Regex(@"^[1]+\d{9}");
                var mFalg = reg.Match(etAccount.Text.Trim());
                if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
                {
                    btnGetVerificationCode.IsSelected = false;
                }
                else
                {
                    btnGetVerificationCode.IsSelected = true;
                }
            };
        }
        /// <summary>
@@ -29,6 +51,10 @@
            //选择手机注册
            btnPhoneLogin.MouseUpEventHandler += (sender, e) =>
            {
#if DEBUG
                etAccount.Text = "17576024298";
#endif
                #region 切换选中按钮
                btnEmailLogin.TextColor = CSS_Color.PromptingColor1;
                btnEmailLogin.TextSize = CSS_FontSize.TextFontSize;
@@ -70,7 +96,6 @@
            };
        }
        /// <summary>
        /// 加载文本框焦点变化事件
        /// </summary>
@@ -91,56 +116,61 @@
                    btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                    btnAccountViewBottomLine.Height = Application.GetRealHeight(1);
                    //手机注册-验证手机号码是否正确
                    if (registerType == 0)
                    if (etAccount.Text.Trim().Length > 0)
                    {
                        Regex reg = new Regex("^\\d+$");
                        var mFalg = reg.Match(etAccount.Text.Trim());
                        if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
                        if (registerType == 0)
                        {
                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
                            new Tip()
                            Regex reg = new Regex(@"^[1]+\d{9}");
                            var mFalg = reg.Match(etAccount.Text.Trim());
                            if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
                            {
                                CloseTime = 3,
                                Text = Language.StringByID(InternationalizationString.PlsEntryCorrectMobilNeumber),
                                Direction = AMPopTipDirection.None,
                            }.Show(bodyView);
                        }
                        else
                        {
                            //标记手机号码有效
                            btnGetVerificationCode.IsSelected = true;
                            //账号有效、密码有效、验证码输入了,才能点击注册
                            if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
                                new Tip()
                                {
                                    CloseTime = 3,
                                    Text = Language.StringByID(InternationalizationString.PlsEntryCorrectMobilNeumber),
                                    Direction = AMPopTipDirection.None,
                                }.Show(bodyView);
                            }
                            else
                            {
                                btnRegister.IsSelected = true;
                                //标记手机号码有效
                                btnGetVerificationCode.IsSelected = true;
                                //账号有效、密码有效、验证码输入了,才能点击注册
                                if (btnGetVerificationCode.IsSelected && ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                                {
                                    btnRegister.IsSelected = true;
                                }
                            }
                        }
                    }
                    else if (registerType == 1)
                    {
                        //邮箱注册-验证邮箱是否正确
                        var reg = new Regex("^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$");
                        var mFalg = reg.Match(etAccount.Text.Trim());
                        if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
                        else if (registerType == 1)
                        {
                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
                            new Tip()
                            //邮箱注册-验证邮箱是否正确
                            var reg = new Regex("^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$");
                            Regex.IsMatch(etAccount.Text.Trim(), "^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$");
                            var mFalg = reg.Match(etAccount.Text.Trim());
                            if (!mFalg.Success)
                            {
                                CloseTime = 3,
                                Text = Language.StringByID(InternationalizationString.PlsEntryCorrectEmailAddress),
                                Direction = AMPopTipDirection.None,
                            }.Show(bodyView);
                        }
                        else
                        {
                            //标记手机号码有效
                            btnGetVerificationCode.IsSelected = true;
                            //账号有效、密码有效、验证码输入了,才能点击注册
                            if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
                                new Tip()
                                {
                                    CloseTime = 3,
                                    Text = Language.StringByID(InternationalizationString.PlsEntryCorrectEmailAddress),
                                    Direction = AMPopTipDirection.None,
                                }.Show(bodyView);
                            }
                            else
                            {
                                btnRegister.IsSelected = true;
                                //标记手机号码有效
                                btnGetVerificationCode.IsSelected = true;
                                //账号有效、密码有效、验证码输入了,才能点击注册
                                if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                                {
                                    btnRegister.IsSelected = true;
                                }
                            }
                        }
                    }
@@ -148,7 +178,8 @@
            };
            //密码文本框焦点变化事件
            etPassword.FoucsChanged += (sender, e) => {
            etPassword.FoucsChanged += (sender, e) =>
            {
                if (etPassword.Foucs)
                {
                    btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor;
@@ -156,23 +187,30 @@
                }
                else
                {
                    btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                    btnPasswordViewBottomLine.Height = Application.GetRealHeight(1);
                    //校验密码是否符合要求
                    if (etPassword.Text.Trim().Length < 6)
                    //需要输入6位以上的密码
                    if (etPassword.Text.Length < 6)
                    {
                        btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                        btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1);
                        new Tip()
                        {
                            CloseTime = 3,
                            Direction = AMPopTipDirection.None,
                            Text = Language.StringByID(InternationalizationString.IncorrectRepeatPassword)
                            Text = Language.StringByID(InternationalizationString.PlsRegisterPassword)
                        }.Show(bodyView);
                    }
                    else
                    {
                        btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                        btnPasswordViewBottomLine.Height = Application.GetRealHeight(1);
                    }
                }
            };
            //确认密码文本框焦点变化事件
            etRepeatPassword.FoucsChanged += (sender, e) => {
            etRepeatPassword.FoucsChanged += (sender, e) =>
            {
                if (etRepeatPassword.Foucs)
                {
                    btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor;
@@ -183,31 +221,35 @@
                    btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                    btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1);
                    //校验两次输入的密码是否一致
                    if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim())
                    if (etPassword.Text.Trim().Length > 5)
                    {
                        btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                        btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2);
                        new Tip()
                        if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim())
                        {
                            CloseTime = 3,
                            Direction = AMPopTipDirection.None,
                            Text = Language.StringByID(InternationalizationString.IncorrectRepeatPassword)
                        }.Show(bodyView);
                    }
                    else
                    {
                        ValidPassword = true;
                        //账号有效、密码有效、验证码输入了,才能点击注册
                        if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                            btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                            btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2);
                            new Tip()
                            {
                                CloseTime = 3,
                                Direction = AMPopTipDirection.None,
                                Text = Language.StringByID(InternationalizationString.IncorrectRepeatPassword)
                            }.Show(bodyView);
                        }
                        else
                        {
                            btnRegister.IsSelected = true;
                            ValidPassword = true;
                            //账号有效、密码有效、验证码输入了,才能点击注册
                            if (btnGetVerificationCode.IsSelected && ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                            {
                                btnRegister.IsSelected = true;
                            }
                        }
                    }
                }
            };
            //验证码文本框焦点变化事件
            etVerificationCode.FoucsChanged += (sender, e) => {
            etVerificationCode.FoucsChanged += (sender, e) =>
            {
                if (etVerificationCode.Foucs)
                {
                    btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.MainColor;
@@ -217,10 +259,10 @@
                {
                    btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                    btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(1);
                    if (etVerificationCode.Text.Length > 4)
                    if (etVerificationCode.Text.Length > 1)
                    {
                        //账号有效、密码有效、验证码输入了,才能点击注册
                        if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                        if (btnGetVerificationCode.IsSelected && ValidPassword)
                        {
                            btnRegister.IsSelected = true;
                        }
@@ -235,12 +277,14 @@
        void LoadEvent_ChangeTextVisble()
        {
            //密码文本可见性变化
            btnVisiblePassword.MouseUpEventHandler += (sender, e) => {
            btnVisiblePassword.MouseUpEventHandler += (sender, e) =>
            {
                btnVisiblePassword.IsSelected = !btnVisiblePassword.IsSelected;
                etPassword.SecureTextEntry = !btnVisiblePassword.IsSelected;
            };
            //重复密码文本可见性变化
            btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) => {
            btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) =>
            {
                btnRepeatVisiblePassword.IsSelected = !btnRepeatVisiblePassword.IsSelected;
                etRepeatPassword.SecureTextEntry = !btnRepeatVisiblePassword.IsSelected;
            };
@@ -251,46 +295,58 @@
        /// </summary>
        void LoadEvent_GetVerificationCode()
        {
            btnGetVerificationCode.MouseUpEventHandler += (sender, e) => {
            btnGetVerificationCode.MouseUpEventHandler += (sender, e) =>
            {
                if (btnGetVerificationCode.IsSelected)
                {
                    //短信发送间隔60s
                    btnGetVerificationCode.IsSelected = false;
                    int time = 60;
                    new Thread(() =>
                    //获取验证码
                    var result = pm.GetPhoneRegisterVerCode(etAccount.Text.Trim());
                    if (result.StateCode == "Success")
                    {
                        while (time == 0)
                        //短信发送间隔60s
                        btnGetVerificationCode.IsSelected = false;
                        int time = 60;
                        new Thread(() =>
                        {
                            time--;
                            while (time > 0)
                            {
                                time--;
                                Application.RunOnMainThread(() =>
                                {
                                    btnGetVerificationCode.Text = time.ToString() + "s";
                                });
                                Thread.Sleep(1000);
                            }
                            Application.RunOnMainThread(() =>
                            {
                                btnGetVerificationCode.Text = time.ToString() + "s";
                                //回复获取短信按钮事件
                                btnGetVerificationCode.IsSelected = true;
                                btnGetVerificationCode.TextID = InternationalizationString.GetVerificationCode;
                            });
                            Thread.Sleep(1000);
                        }
                        Application.RunOnMainThread(() =>
                        {
                            //回复获取短信按钮事件
                            btnGetVerificationCode.IsSelected = true;
                        });
                    })
                    { IsBackground = true }.Start();
                    //检查手机是否已经被注册
                    var checkPhoneResult = pm.IsExistingAccount(etAccount.Text.Trim());
                    //手机未被注册
                    if (checkPhoneResult.StateCode != HttpRequesResult.SUCCESS.ToString())
                    {
                        //获取验证码
                        pm.GetPhoneVerificationCode(etAccount.Text.Trim(), MainPage.Company);
                        })
                        { IsBackground = true }.Start();
                    }
                    else
                    else
                    {
                        //提示手机号码已经注册
                        string tipString = "Server error";
                        switch (result.StateCode)
                        {
                            case "Exist":
                                tipString = Language.StringByID(InternationalizationString.AccountAlreadyExists);
                                break;
                            case "SendFail":
                                tipString = Language.StringByID(InternationalizationString.FailedToSendVerificationCode);
                                break;
                            case "Self:Net_Error":
                                tipString = Language.StringByID(InternationalizationString.NetworkAnomaly);
                                break;
                        }
                        new Tip()
                        {
                            CloseTime = 3,
                            Direction = AMPopTipDirection.None,
                            Text = Language.StringByID(InternationalizationString.AccountAlreadyExists)
                            Text = tipString
                        }.Show(bodyView);
                    }
                }
@@ -304,84 +360,79 @@
        {
            btnRegister.MouseUpEventHandler += (sender, e) =>
            {
                //手机注册
                if (registerType == 0)
                if (btnRegister.IsSelected)
                {
                    //校验验证码
                    var validateSmsResult = pm.ValidateSmsCode(etAccount.Text.Trim(), etVerificationCode.Text.Trim());
                    //验证码校验成功
                    if (validateSmsResult.StateCode == HttpRequesResult.SUCCESS.ToString())
                    {
                        //注册账号
                        var registerPhoneResult = pm.RegisterPhone(etAccount.Text.Trim(), etPassword.Text.Trim(), Language.CurrentLanguage);
                        if (registerPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
                        {
                            //注册成功
                            //执行回调事件
                            callbackAction?.Invoke(etAccount.Text.Trim());
                        }
                        else
                        {
                            //注册失败
                            new Tip()
                            {
                                CloseTime = 3,
                                Text = registerPhoneResult.ErrorInfo,
                                Direction = AMPopTipDirection.None,
                            }.Show(bodyView);
                        }
                    }
                    else
                    {
                        //验证码校验失败
                        new Tip()
                        {
                            CloseTime = 3,
                            Direction = AMPopTipDirection.None,
                            Text = Language.StringByID(InternationalizationString.VerificationCodeWrong)
                        }.Show(bodyView);
                    }
                }
                else if(registerType == 1)
                {
                    //邮箱注册
                    //校验验证码
                    var validateSmsResult = pm.ValidateSmsCode(etAccount.Text.Trim(), etVerificationCode.Text.Trim());
                    //验证码校验成功
                    if (validateSmsResult.StateCode == HttpRequesResult.SUCCESS.ToString())
                    {
                        //注册账号
                        var registerPhoneResult = pm.RegisterPhone(etAccount.Text.Trim(), etPassword.Text.Trim(), Language.CurrentLanguage);
                        if (registerPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
                        {
                            //注册成功
                            //执行回调事件
                            callbackAction?.Invoke(etAccount.Text.Trim());
                        }
                        else
                        {
                            //注册失败
                            new Tip()
                            {
                                CloseTime = 3,
                                Text = registerPhoneResult.ErrorInfo,
                                Direction = AMPopTipDirection.None,
                            }.Show(bodyView);
                        }
                    }
                    else
                    {
                        //验证码校验失败
                        new Tip()
                        {
                            CloseTime = 3,
                            Direction = AMPopTipDirection.None,
                            Text = Language.StringByID(InternationalizationString.VerificationCodeWrong)
                        }.Show(bodyView);
                    }
                    waitPage = new Loading();
                    new WaitPageMothed().LoadPage_WaitPage(LoadMethod_RegisterThread(), bodyView, waitPage);
                }
            };
        }
        /// <summary>
        /// 加载注册方法
        /// </summary>
        Thread LoadMethod_RegisterThread()
        {
            string account = etAccount.Text.Trim();
            string password = etPassword.Text.Trim();
            string entryPassword = etRepeatPassword.Text.Trim();
            string verCode = etVerificationCode.Text.Trim();
            return new Thread(() =>
             {
                 try
                 {
                     //校验验证码/注册账号
                     var validateSmsResult = pm.ValidataCodeAndRegister(account, password, entryPassword, verCode, 86);
                     //验证码校验成功
                     if (validateSmsResult.StateCode == "Success")
                     {
                         //注册成功
                         //执行回调事件
                         this.Close();
                         callbackAction?.Invoke(account);
                     }
                     else//注册失败
                     {
                         string erorrInfo = "";
                         switch (validateSmsResult.StateCode)
                         {
                             case "Exist":
                                 erorrInfo = Language.StringByID(InternationalizationString.AccountAlreadyExists);
                                 break;
                             case "PwdNoConfirm":
                                 erorrInfo = Language.StringByID(InternationalizationString.IncorrectRepeatPassword);
                                 break;
                             case "ValidCodeAndPhoneNoEqual":
                                 erorrInfo = Language.StringByID(InternationalizationString.VerificationCodeWrong);
                                 break;
                             default:
                                 erorrInfo = Language.StringByID(InternationalizationString.RegistrationFailedPleaseTryAgain);
                                 break;
                         }
                         Application.RunOnMainThread(() =>
                         {
                             new Tip()
                             {
                                 CloseTime = 3,
                                 Direction = AMPopTipDirection.None,
                                 Text = erorrInfo,
                             }.Show(bodyView);
                         });
                     }
                 }
                 catch (Exception ex)
                 {
                     MainPage.Log("Exception 1 : " + ex.Message);
                 }
                 finally
                 {
                     Application.RunOnMainThread(() =>
                     {
                         waitPage.Hide();
                     });
                 }
             });
        }
    }
}
}