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