From a715181089be0d31cd737a5367ffd02690b9d77f Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 12 十一月 2020 13:36:01 +0800 Subject: [PATCH] 20201112 --- HDL_ON/UI/UI1-Login/RegisterPageBLL.cs | 545 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 545 insertions(+), 0 deletions(-) diff --git a/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs b/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs new file mode 100644 index 0000000..d997321 --- /dev/null +++ b/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs @@ -0,0 +1,545 @@ +锘縰sing System; +using System.Text.RegularExpressions; +using System.Threading; +using HDL_ON.DAL.Server; +using HDL_ON.UI.CSS; +using Shared; + +namespace HDL_ON.UI.UI1Login +{ + public partial class RegisterPage + { + /// <summary> + /// 鍔犺浇浜嬩欢鍒楄〃 + /// </summary> + void LoadEventList() + { + LoadPage_SwitchRegisterType(); + LoadEvent_EditTextFcousChange(); + LoadEvent_ChangeTextVisble(); + LoadEvent_GetVerificationCode(); + LoadEvent_Register(); + LoadEvent_LimtPasswordLength(); + LoadEvent_TextChange(); + //var areaCodeList = pm.GetAreaCode(); + } + /// <summary> + /// 鍔犺浇鏂囨湰鍙樺寲浜嬩欢 + /// </summary> + void LoadEvent_TextChange() + { + etAccount.TextChangeEventHandler = (sender, e) => + { + 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) + { + btnGetVerificationCode_Phone.IsSelected = false; + } + else + { + if (btnGetVerificationCode_Phone.Text == Language.StringByID(StringId.GetVerificationCode)) + btnGetVerificationCode_Phone.IsSelected = true; + } + } + else//閭娉ㄥ唽鑾峰彇楠岃瘉鐮佹寜閽敓鏁堟潯浠� + { + if (!mFalg.Success) + { + btnGetVerificationCode_Mail.IsSelected = false; + } + else + { + if (btnGetVerificationCode_Mail.Text == Language.StringByID(StringId.GetVerificationCode)) + btnGetVerificationCode_Mail.IsSelected = true; + } + } + + }; + } + + /// <summary> + /// 鍒囨崲娉ㄥ唽绫诲瀷 + /// </summary> + void LoadPage_SwitchRegisterType() + { + //閫夋嫨鎵嬫満娉ㄥ唽 + btnPhoneLogin.MouseUpEventHandler = (sender, e) => + { + if(registerType == 0) + { + return; + } + etAccount.Text = registerPhone; + etPassword.Text = ""; + etRepeatPassword.Text = ""; + #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.PlsEntryPhoneNumber); + #endregion + + #region 鍒囨崲娉ㄥ唽鏂瑰紡鍙婂浘鏍� + registerType = 0; + if (btnAccountIcon.Parent != null) + { + btnAccountIcon.RemoveFromParent(); + } + accountView.AddChidren(btnGlobalRoaming); + #endregion + }; + + //閫夋嫨閭娉ㄥ唽 + btnEmailLogin.MouseUpEventHandler = (sender, e) => + { + if (registerType == 1) + return; + etAccount.Text = registerEmail; + etPassword.Text = ""; + etRepeatPassword.Text = ""; + #region 鍒囨崲閫変腑鎸夐挳 + btnGetVerificationCode_Mail.Visible = true; + btnGetVerificationCode_Phone.Visible = false; + btnPhoneLogin.TextColor = CSS_Color.PromptingColor1; + btnPhoneLogin.TextSize = CSS_FontSize.TextFontSize; + btnEmailLogin.TextColor = CSS_Color.MainColor; + btnEmailLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary; + etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryEmailAddress); + #endregion + + #region 鍒囨崲娉ㄥ唽绫诲瀷鍙婂浘鏍� + registerType = 1; + if (btnGlobalRoaming.Parent != null) + { + btnGlobalRoaming.RemoveFromParent(); + } + accountView.AddChidren(btnAccountIcon); + #endregion + + }; + } + + /// <summary> + /// 鍔犺浇鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� + /// </summary> + void LoadEvent_EditTextFcousChange() + { + //璐﹀彿鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� + etAccount.FoucsChanged += (sender, e) => + { + if (etAccount.Foucs) + { + btnAccountViewBottomLine.BackgroundColor = CSS_Color.MainColor; + btnAccountViewBottomLine.Height = Application.GetRealHeight(2); + } + else + { + //鏍囪鎵嬫満鍙风爜鏃犳晥 + btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; + btnAccountViewBottomLine.Height = Application.GetRealHeight(1); + //鎵嬫満娉ㄥ唽-楠岃瘉鎵嬫満鍙风爜鏄惁姝g‘ + if (etAccount.Text.Trim().Length > 0) + { + 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)) + { + btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnAccountViewBottomLine.Height = Application.GetRealHeight(2); + btnGetVerificationCode_Phone.IsSelected = false; + new Tip() + { + CloseTime = 1, + Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber), + Direction = AMPopTipDirection.None, + }.Show(bodyView); + } + else + { + if (btnGetVerificationCode_Phone.Text == Language.StringByID(StringId.GetVerificationCode)) + { + //鏍囪鎵嬫満鍙风爜鏈夋晥 + btnGetVerificationCode_Phone.IsSelected = true; + } + //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽 + if (ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim())) + { + btnRegister.IsSelected = true; + } + } + } + else if (registerType == 1) + { + //閭娉ㄥ唽-楠岃瘉閭鏄惁姝g‘ + 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) + { + btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnAccountViewBottomLine.Height = Application.GetRealHeight(2); + btnGetVerificationCode_Mail.IsSelected = false; + new Tip() + { + CloseTime = 1, + Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress), + Direction = AMPopTipDirection.None, + }.Show(bodyView); + } + else + { + if (btnGetVerificationCode_Mail.Text == Language.StringByID(StringId.GetVerificationCode)) + {//鏍囪鎵嬫満鍙风爜鏈夋晥 + btnGetVerificationCode_Mail.IsSelected = true; + } + //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽 + if (ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) + { + btnRegister.IsSelected = true; + } + } + } + } + if(accountType ==0) + { + registerPhone = etAccount.Text.Trim(); + } + else + { + registerEmail = etAccount.Text.Trim(); + } + } + }; + + //瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� + etPassword.FoucsChanged += (sender, e) => + { + if (etPassword.Foucs) + { + btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor; + btnPasswordViewBottomLine.Height = Application.GetRealHeight(2); + } + else + { + if (etPassword.Text.Length == 0) + { + btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; + btnPasswordViewBottomLine.Height = Application.GetRealHeight(1); + return; + } + //闇�瑕佽緭鍏�6浣嶄互涓婄殑瀵嗙爜 + if (etPassword.Text.Length < 6 || etPassword.Text.Length > 13) + { + btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnPasswordViewBottomLine.Height = Application.GetRealHeight(2); + + new Tip() + { + CloseTime = 1, + Direction = AMPopTipDirection.None, + Text = Language.StringByID(StringId.PlsRegisterPassword) + }.Show(bodyView); + } + else + { + btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; + btnPasswordViewBottomLine.Height = Application.GetRealHeight(1); + } + } + }; + + //纭瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� + etRepeatPassword.FoucsChanged += (sender, e) => + { + if (etRepeatPassword.Foucs) + { + btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor; + btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2); + } + else + { + btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; + btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1); + //鏍¢獙涓ゆ杈撳叆鐨勫瘑鐮佹槸鍚︿竴鑷� + if (etPassword.Text.Trim().Length > 5) + { + if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim()) + { + btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2); + new Tip() + { + CloseTime = 1, + Direction = AMPopTipDirection.None, + Text = Language.StringByID(StringId.IncorrectRepeatPassword) + }.Show(bodyView); + } + else + { + ValidPassword = true; + //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽 + if (ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim())) + { + btnRegister.IsSelected = true; + } + } + } + } + }; + + //楠岃瘉鐮佹枃鏈鐒︾偣鍙樺寲浜嬩欢 + etVerificationCode.FoucsChanged += (sender, e) => + { + if (etVerificationCode.Foucs) + { + btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.MainColor; + btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2); + } + else + { + btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; + btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(1); + if (etVerificationCode.Text.Length > 1) + { + //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽 + 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); + } + }; + } + + /// <summary> + /// 鏇存敼瀵嗙爜鍙鎬� + /// </summary> + void LoadEvent_ChangeTextVisble() + { + //瀵嗙爜鏂囨湰鍙鎬у彉鍖� + btnVisiblePassword.MouseUpEventHandler += (sender, e) => + { + btnVisiblePassword.IsSelected = !btnVisiblePassword.IsSelected; + etPassword.SecureTextEntry = !btnVisiblePassword.IsSelected; + }; + //閲嶅瀵嗙爜鏂囨湰鍙鎬у彉鍖� + btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) => + { + btnRepeatVisiblePassword.IsSelected = !btnRepeatVisiblePassword.IsSelected; + etRepeatPassword.SecureTextEntry = !btnRepeatVisiblePassword.IsSelected; + }; + } + + /// <summary> + /// 鑾峰彇楠岃瘉鐮� + /// </summary> + 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(); + } + }; + + btnGetVerificationCode_Phone.MouseDownEventHandler = eventHandler; + btnGetVerificationCode_Mail.MouseDownEventHandler = eventHandler; + } + + /// <summary> + /// 鍔犺浇娉ㄥ唽鎸夐挳浜嬩欢 + /// </summary> + void LoadEvent_Register() + { + btnRegister.MouseUpEventHandler = (sender, e) => + { + if(etPassword.Text.Trim().Length > 13 || etPassword.Text.Trim().Length<6) + { + new Tip() + { + CloseTime = 1, + Direction = AMPopTipDirection.None, + Text = Language.StringByID(StringId.PlsRegisterPassword) + }.Show(bodyView); + return; + } + if (btnRegister.IsSelected) + { + waitPage = new Loading(); + new PublicAssmebly().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.ToUpper() == "SUCCESS") + { + //娉ㄥ唽鎴愬姛 + //鎵ц鍥炶皟浜嬩欢 + //callbackAction?.Invoke(account); + Application.RunOnMainThread(() => + { + this.Close(); + LoadEvent_AutoLogin(account, password); + }); + } + 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); + }); + } + } + catch (Exception ex) + { + MainPage.Log("Exception 1 : " + ex.Message); + } + finally + { + Application.RunOnMainThread(() => + { + waitPage.Hide(); + }); + } + }); + } + } +} \ No newline at end of file -- Gitblit v1.8.0