wxr
2020-07-06 23c075a9c27946773feccf05abc90489a6bf5203
HDL_ON/UI/UI1-Login/RegisterPageBLL.cs
@@ -14,12 +14,12 @@
        /// </summary>
        void LoadEventList()
        {
            LoadPage_SwitchLoginType();
            LoadPage_SwitchRegisterType();
            LoadEvent_EditTextFcousChange();
            LoadEvent_ChangeTextVisble();
            LoadEvent_GetVerificationCode();
            LoadEvent_Register();
            LoadEvent_LimtPasswordLength();
            LoadEvent_TextChange();
            //var areaCodeList = pm.GetAreaCode();
        }
@@ -28,39 +28,58 @@
        /// </summary>
        void LoadEvent_TextChange()
        {
            etAccount.TextChangeEventHandler += (sender, e) =>
            etAccount.TextChangeEventHandler = (sender, e) =>
            {
                Regex reg = new Regex(@"^[1]+\d{9}");
                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 (registerType == 0)//手机注册获取验证码按钮生效条件
                {
                    btnGetVerificationCode.IsSelected = false;
                    if (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11)
                    {
                        btnGetVerificationCode_Phone.IsSelected = false;
                    }
                    else
                    {
                        if (btnGetVerificationCode_Phone.Text == Language.StringByID(StringId.GetVerificationCode))
                            btnGetVerificationCode_Phone.IsSelected = true;
                    }
                }
                else
                else//邮箱注册获取验证码按钮生效条件
                {
                    btnGetVerificationCode.IsSelected = true;
                    if (!mFalg.Success )
                    {
                        btnGetVerificationCode_Mail.IsSelected = false;
                    }
                    else
                    {
                        if (btnGetVerificationCode_Mail.Text == Language.StringByID(StringId.GetVerificationCode))
                            btnGetVerificationCode_Mail.IsSelected = true;
                    }
                }
            };
        }
        /// <summary>
        /// 切换注册类型
        /// </summary>
        void LoadPage_SwitchLoginType()
        void LoadPage_SwitchRegisterType()
        {
            //选择手机注册
            btnPhoneLogin.MouseUpEventHandler += (sender, e) =>
            btnPhoneLogin.MouseUpEventHandler = (sender, e) =>
            {
#if DEBUG
                etAccount.Text = "17576024298";
#endif
                #region 切换选中按钮
                btnGetVerificationCode_Mail.Visible = false;
                btnGetVerificationCode_Phone.Visible = true;
                btnEmailLogin.TextColor = CSS_Color.PromptingColor1;
                btnEmailLogin.TextSize = CSS_FontSize.TextFontSize;
                btnPhoneLogin.TextColor = CSS_Color.MainColor;
                btnPhoneLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
                etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber);
                etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryPhoneNumber);
                #endregion
                #region 切换注册方式及图标
@@ -74,9 +93,15 @@
            };
            //选择邮箱注册
            btnEmailLogin.MouseUpEventHandler += (sender, e) =>
            btnEmailLogin.MouseUpEventHandler = (sender, e) =>
            {
#if DEBUG
                etAccount.Text = "979412578@qq.com";
#endif
                #region 切换选中按钮
                btnGetVerificationCode_Mail.Visible = true;
                btnGetVerificationCode_Phone.Visible = false;
                btnPhoneLogin.TextColor = CSS_Color.PromptingColor1;
                btnPhoneLogin.TextSize = CSS_FontSize.TextFontSize;
                btnEmailLogin.TextColor = CSS_Color.MainColor;
@@ -112,7 +137,6 @@
                else
                {
                    //标记手机号码无效
                    btnGetVerificationCode.IsSelected = false;
                    btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                    btnAccountViewBottomLine.Height = Application.GetRealHeight(1);
                    //手机注册-验证手机号码是否正确
@@ -120,13 +144,13 @@
                    {
                        if (registerType == 0)
                        {
                            Regex reg = new Regex(@"^[1]+\d{9}");
                            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))
                            {
                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
                                btnGetVerificationCode_Phone.IsSelected = false;
                                new Tip()
                                {
                                    CloseTime = 3,
@@ -136,10 +160,13 @@
                            }
                            else
                            {
                                //标记手机号码有效
                                btnGetVerificationCode.IsSelected = true;
                                if (btnGetVerificationCode_Phone.Text == Language.StringByID(StringId.GetVerificationCode))
                                {
                                    //标记手机号码有效
                                    btnGetVerificationCode_Phone.IsSelected = true;
                                }
                                //账号有效、密码有效、验证码输入了,才能点击注册
                                if (btnGetVerificationCode.IsSelected && ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                                if (ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                                {
                                    btnRegister.IsSelected = true;
                                }
@@ -149,12 +176,13 @@
                        {
                            //邮箱注册-验证邮箱是否正确
                            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)$");
                            //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)
                            {
                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
                                btnGetVerificationCode_Mail.IsSelected = false;
                                new Tip()
                                {
                                    CloseTime = 3,
@@ -164,10 +192,12 @@
                            }
                            else
                            {
                                //标记手机号码有效
                                btnGetVerificationCode.IsSelected = true;
                                if (btnGetVerificationCode_Mail.Text == Language.StringByID(StringId.GetVerificationCode))
                                {//标记手机号码有效
                                    btnGetVerificationCode_Mail.IsSelected = true;
                                }
                                //账号有效、密码有效、验证码输入了,才能点击注册
                                if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                                if (ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                                {
                                    btnRegister.IsSelected = true;
                                }
@@ -187,11 +217,13 @@
                }
                else
                {
                    if (etPassword.Text.Length == 0)
                        return;
                    //需要输入6位以上的密码
                    if (etPassword.Text.Length < 6)
                    if (etPassword.Text.Length < 6|| etPassword.Text.Length >13)
                    {
                        btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                        btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1);
                        btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                        btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
                        new Tip()
                        {
@@ -218,6 +250,8 @@
                }
                else
                {
                    if (etRepeatPassword.Text.Length == 0)
                        return;
                    btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                    btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1);
                    //校验两次输入的密码是否一致
@@ -238,7 +272,7 @@
                        {
                            ValidPassword = true;
                            //账号有效、密码有效、验证码输入了,才能点击注册
                            if (btnGetVerificationCode.IsSelected && ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                            if (ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
                            {
                                btnRegister.IsSelected = true;
                            }
@@ -262,11 +296,31 @@
                    if (etVerificationCode.Text.Length > 1)
                    {
                        //账号有效、密码有效、验证码输入了,才能点击注册
                        if (btnGetVerificationCode.IsSelected && ValidPassword)
                        if (ValidPassword)
                        {
                            btnRegister.IsSelected = true;
                        }
                    }
                }
            };
        }
        /// <summary>
        /// 限制密码文本库输入长度
        /// </summary>
        void LoadEvent_LimtPasswordLength()
        {
            etPassword.TextChangeEventHandler = (sender, e) => {
                if(etPassword.Text.Length>16)
                {
                    etPassword.Text = etPassword.Text.Remove(15);
                }
            };
            etRepeatPassword.TextChangeEventHandler = (sender, e) => {
                if (etRepeatPassword.Text.Length > 16)
                {
                    etRepeatPassword.Text = etRepeatPassword.Text.Remove(15);
                }
            };
        }
@@ -295,62 +349,78 @@
        /// </summary>
        void LoadEvent_GetVerificationCode()
        {
            btnGetVerificationCode.MouseUpEventHandler += (sender, e) =>
            {
                if (btnGetVerificationCode.IsSelected)
                {
                    //获取验证码
                    var result = pm.GetPhoneRegisterVerCode(etAccount.Text.Trim());
                    if (result.StateCode == "Success")
                    {
                        //短信发送间隔60s
                        btnGetVerificationCode.IsSelected = false;
                        int time = 60;
                        new Thread(() =>
                        {
                            while (time > 0)
                            {
                                time--;
                                Application.RunOnMainThread(() =>
                                {
                                    btnGetVerificationCode.Text = time.ToString() + "s";
                                });
                                Thread.Sleep(1000);
                            }
                            Application.RunOnMainThread(() =>
                            {
                                //回复获取短信按钮事件
                                btnGetVerificationCode.IsSelected = true;
                                btnGetVerificationCode.TextID = StringId.GetVerificationCode;
                            });
                        })
                        { IsBackground = true }.Start();
                    }
                    else
                    {
                        string tipString = "Server error";
                        switch (result.StateCode)
                        {
                            case "Exist":
                                tipString = Language.StringByID(StringId.AccountAlreadyExists);
                                break;
                            case "SendFail":
                                tipString = Language.StringByID(StringId.FailedToSendVerificationCode);
                                break;
                            case "Self:Net_Error":
                                tipString = Language.StringByID(StringId.NetworkAnomaly);
                                break;
                        }
            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.GetPhoneRegisterVerCode(account);
                       if (result.StateCode.ToUpper() == "SUCCESS")
                       {
                       }
                       else
                       {
                           string tipString = "Server error";
                           switch (result.StateCode)
                           {
                               case "Exist":
                                   tipString = Language.StringByID(StringId.AccountAlreadyExists);
                                   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 = 3,
                                   Direction = AMPopTipDirection.None,
                                   Text = tipString
                               }.Show(bodyView);
                           });
                       }
                   })
                   { IsBackground = true }.Start();
               }
           };
                        new Tip()
                        {
                            CloseTime = 3,
                            Direction = AMPopTipDirection.None,
                            Text = tipString
                        }.Show(bodyView);
                    }
                }
            };
            btnGetVerificationCode_Phone.MouseDownEventHandler = eventHandler;
            btnGetVerificationCode_Mail.MouseDownEventHandler = eventHandler;
        }
        /// <summary>
@@ -358,12 +428,12 @@
        /// </summary>
        void LoadEvent_Register()
        {
            btnRegister.MouseUpEventHandler += (sender, e) =>
            btnRegister.MouseUpEventHandler = (sender, e) =>
            {
                if (btnRegister.IsSelected)
                {
                    waitPage = new Loading();
                    new WaitPageMothed().LoadPage_WaitPage(LoadMethod_RegisterThread(), bodyView, waitPage);
                    new PublicAssmebly().LoadPage_WaitPage(LoadMethod_RegisterThread(), bodyView, waitPage);
                }
            };
        }
@@ -384,12 +454,16 @@
                     //校验验证码/注册账号
                     var validateSmsResult = pm.ValidataCodeAndRegister(account, password, entryPassword, verCode, 86);
                     //验证码校验成功
                     if (validateSmsResult.StateCode == "Success")
                     if (validateSmsResult.StateCode.ToUpper() == "SUCCESS")
                     {
                         //注册成功
                         //执行回调事件
                         this.Close();
                         callbackAction?.Invoke(account);
                         //callbackAction?.Invoke(account);
                         Application.RunOnMainThread(() =>
                         {
                            this.Close();
                             LoadEvent_AutoLogin(account, password);
                         });
                     }
                     else//注册失败
                     {
@@ -405,6 +479,14 @@
                             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;