From 7167334c0e89dd84827d59e726123d14776e3a09 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期二, 16 六月 2020 11:14:13 +0800 Subject: [PATCH] 2020-06-16-1 --- HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs | 553 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 553 insertions(+), 0 deletions(-) diff --git a/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs new file mode 100644 index 0000000..509ce4c --- /dev/null +++ b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs @@ -0,0 +1,553 @@ +锘縰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 ForgetPasswordPage + { + /// <summary> + /// 鍔犺浇浜嬩欢鍒楄〃 + /// </summary> + void LoadEventList() + { + LoadPage_SwitchResetMode(); + LoadEvent_EditTextFcousChange(); + LoadEvent_ChangeTextVisble(); + LoadEvent_GetVerificationCode(); + LoadEvent_Reset(); + LoadEvent_TextChange(); + } + + /// <summary> + /// 鍒囨崲淇敼鏂瑰紡 + /// </summary> + void LoadPage_SwitchResetMode() + { + //閫夋嫨鎵嬫満鏂瑰紡 + btnPhoneLogin.MouseUpEventHandler += (sender, e) => + { + #region 鍒囨崲閫変腑鎸夐挳 + 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); + #endregion + + #region 鍒囨崲鏂瑰紡鏂瑰紡鍙婂浘鏍� + registerType = 0; + if (btnAccountIcon.Parent != null) + { + btnAccountIcon.RemoveFromParent(); + } + accountView.AddChidren(btnGlobalRoaming); + #endregion + }; + + //閫夋嫨閭鏂瑰紡 + btnEmailLogin.MouseUpEventHandler += (sender, e) => + { + #region 鍒囨崲閫変腑鎸夐挳 + 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_TextChange() + { + etAccount.TextChangeEventHandler += (sender, e) => + { + 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)) + { + btnGetVerificationCode.IsSelected = false; + } + else + { + if (btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode)) + { + btnGetVerificationCode.IsSelected = true; + } + } + }; + } + + /// <summary> + /// 鍔犺浇鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� + /// </summary> + void LoadEvent_EditTextFcousChange() + { + //璐﹀彿鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� + etAccount.FoucsChanged += (sender, e) => + { + if (etAccount.Foucs) + { + btnAccountViewBottomLine.BackgroundColor = CSS_Color.MainColor; + btnAccountViewBottomLine.Height = Application.GetRealHeight(2); + } + else + { + //鏍囪鎵嬫満鍙风爜鏃犳晥 + btnGetVerificationCode.IsSelected = false; + btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; + btnAccountViewBottomLine.Height = Application.GetRealHeight(1); + //鎵嬫満鏂瑰紡-楠岃瘉鎵嬫満鍙风爜鏄惁姝g‘ + if (registerType == 0) + { + 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)) + { + btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnAccountViewBottomLine.Height = Application.GetRealHeight(2); + new Tip() + { + CloseTime = 3, + Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber), + Direction = AMPopTipDirection.None, + }.Show(bodyView); + } + else + { + if (btnGetVerificationCode.Text == Language.StringByID( StringId.GetVerificationCode)) + { + btnGetVerificationCode.IsSelected = true; + } + LoadMothed_EnableResetButton(); + } + } + else if (registerType == 1) + { + //閭鏂瑰紡-楠岃瘉閭鏄惁姝g‘ + 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 ) + { + btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnAccountViewBottomLine.Height = Application.GetRealHeight(2); + new Tip() + { + CloseTime = 3, + Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress), + Direction = AMPopTipDirection.None, + }.Show(bodyView); + } + else + { + if (btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode)) + { + btnGetVerificationCode.IsSelected = true; + } + LoadMothed_EnableResetButton(); + } + } + } + }; + + //瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� + etPassword.FoucsChanged += (sender, e) => + { + if (etPassword.Foucs) + { + btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor; + btnPasswordViewBottomLine.Height = Application.GetRealHeight(2); + } + else + { + btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; + btnPasswordViewBottomLine.Height = Application.GetRealHeight(1); + //鏍¢獙瀵嗙爜鏄惁绗﹀悎瑕佹眰 + if (etPassword.Text.Trim().Length < 6 || etPassword.Text.Trim().Length > 13) + { + new Tip() + { + CloseTime = 3, + Direction = AMPopTipDirection.None, + Text = Language.StringByID(StringId.PasswordIsUnqualified) + }.Show(bodyView); + } + } + }; + + //纭瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� + 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() != etRepeatPassword.Text.Trim()) + { + btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2); + new Tip() + { + CloseTime = 3, + Direction = AMPopTipDirection.None, + Text = Language.StringByID(StringId.IncorrectRepeatPassword) + }.Show(bodyView); + } + else + { + LoadMothed_EnableResetButton(); + } + } + }; + + //楠岃瘉鐮佹枃鏈鐒︾偣鍙樺寲浜嬩欢 + 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 > 4) + { + LoadMothed_EnableResetButton(); + } + } + }; + } + + + /// <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() + { + btnGetVerificationCode.MouseUpEventHandler += (sender, e) => + { + var account = etAccount.Text.Trim(); + if (btnGetVerificationCode.IsSelected) + { + //鐭俊鍙戦�侀棿闅�60s + btnGetVerificationCode.IsSelected = false; + etVerificationCode.Foucs = true; + //鑾峰彇楠岃瘉鐮� + 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(); + new Thread(() => + { + var result = pm.SendSms(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 "AccountNoExists": + tipString = Language.StringByID(StringId.AccountNotExist); + break; + case "Self:Net_Error": + tipString = Language.StringByID(StringId.NetworkAnomaly); + break; + } + + Application.RunOnMainThread(() => + { + new Tip() + { + CloseTime = 3, + Direction = AMPopTipDirection.None, + Text = tipString + }.Show(bodyView); + }); + } + }) + { IsBackground = true }.Start(); + } + }; + } + + /// <summary> + /// 鍔犺浇鏂瑰紡鎸夐挳浜嬩欢 + /// </summary> + void LoadEvent_Reset() + { + btnReset.MouseUpEventHandler += (sender, e) => + { + if (btnReset.IsSelected) + { + //鍒涘缓淇敼瀵嗙爜绾跨▼ + var loginThread = LoadMothed_ResetThread(); + waitPage = new Loading(); + new PublicAssmebly().LoadPage_WaitPage(loginThread, bodyView, waitPage); + } + }; + } + + /// <summary> + /// 鍔犺浇閲嶇疆瀵嗙爜鏂规硶 + /// </summary> + Thread LoadMothed_ResetThread() + { + string account = etAccount.Text.Trim(); + string password = etPassword.Text.Trim(); + string repeatPassword = etRepeatPassword.Text.Trim(); + string verCode = etVerificationCode.Text.Trim(); + int countryIndex = 0; + try + { + countryIndex = Convert.ToInt32(btnGlobalRoaming.Text.Trim().Remove('+')); + } + catch { } + + return new Thread(() => + { + var verResult = pm.ValidatorCode(account, verCode, countryIndex); + if (verResult.StateCode.ToUpper() == "SUCCESS") + { + var resetResult = pm.ResetPassword(account, password, repeatPassword, countryIndex); + if (resetResult.StateCode.ToUpper() == "SUCCESS") + { + Application.RunOnMainThread(() => + { + LoadEvent_AutoLogin(); + + callbackAction?.Invoke(account); + }); + } + else + { + string erorrInfo = ""; + switch (resetResult.StateCode) + { + case "PwdNoConfirm"://涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷� + erorrInfo = Language.StringByID(StringId.IncorrectRepeatPassword); + break; + case "AccountNoExists"://涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷� + erorrInfo = Language.StringByID(StringId.AccountNotExist); + break; + default: + erorrInfo = "Server error"; + break; + } + Application.RunOnMainThread(() => + { + waitPage.Hide(); + new Tip() + { + CloseTime = 3, + Direction = AMPopTipDirection.None, + Text = erorrInfo, + }.Show(bodyView); + }); + } + } + else + { + string erorrInfo = ""; + switch (verResult.StateCode) + { + case "ValidCodeAndPhoneNoEqual"://楠岃瘉鐮侀敊璇� + erorrInfo = Language.StringByID(StringId.VerificationCodeWrong); + Application.RunOnMainThread(() => + { + btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2); + }); + break; + case "NoRecord": + erorrInfo = Language.StringByID(StringId.PlsGetTheVerificationCode); + Application.RunOnMainThread(() => + { + btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2); + }); + break; + default: + erorrInfo = "Server error"; + break; + } + Application.RunOnMainThread(() => + { + waitPage.Hide(); + new Tip() + { + CloseTime = 3, + Direction = AMPopTipDirection.None, + Text = erorrInfo, + }.Show(bodyView); + }); + } + }); + } + + /// <summary> + /// 浣胯兘淇敼纭畾鎸夐挳 + /// </summary> + void LoadMothed_EnableResetButton() + { + if (!string.IsNullOrEmpty(etAccount.Text) && !string.IsNullOrEmpty(etPassword.Text) && !string.IsNullOrEmpty(etVerificationCode.Text) && (etPassword.Text.Trim() == etRepeatPassword.Text.Trim())) + { + btnReset.IsSelected = true; + } + else + { + btnReset.IsSelected = false; + } + } + + /// <summary> + /// 浣忓畢鎴愬姛涔嬪悗鑷姩鐧诲綍 + /// </summary> + void LoadEvent_AutoLogin() + { + Dialog dialog = new Dialog(); + + FrameLayout frame = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(198), + Width = Application.GetRealWidth(288), + Height = Application.GetRealHeight(206), + BackgroundColor = CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(12), + BorderWidth = 0, + BorderColor = 0x00000000, + }; + dialog.AddChidren(frame); + + Button btnAccountText = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(40), + Height = Application.GetRealHeight(17 + 14 + 14), + IsMoreLines = true, + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + //Text = "s鏄敓鐢熶笘涓�", + }; + frame.AddChidren(btnAccountText); + + Button btnTipRegisterSuccess = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(123), + Height = Application.GetRealHeight(30), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextID = StringId.PasswordChangeSuccessfully, + }; + frame.AddChidren(btnTipRegisterSuccess); + + Button btnAutoLoginTip = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = btnTipRegisterSuccess.Bottom, + Height = Application.GetRealHeight(17 + 8), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextID = StringId.AutomaticallyLogin, + }; + //frame.AddChidren(btnAutoLoginTip); + + Button btnHeadImage = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(150), + Width = Application.GetRealWidth(84), + Height = Application.GetRealWidth(84), + Radius = (uint)Application.GetRealWidth(42), + BorderColor = 0x00000000, + BorderWidth = 0, + UnSelectedImagePath = "LoginIcon/2.png", + }; + dialog.AddChidren(btnHeadImage); + + dialog.Show(); + + new Thread(() => + { + Thread.Sleep(1500); + Application.RunOnMainThread(() => + { + dialog.Close(); + this.Close(); + }); + }) + { IsBackground = true }.Start(); + } + + + } +} -- Gitblit v1.8.0