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