From 9aa32bd5ed75d54b2141b6c91f163d43216a3643 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期五, 06 十二月 2019 13:14:02 +0800
Subject: [PATCH] 20191206

---
 HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs |  393 +++++++++++++++++++++++++++++++------------------------
 1 files changed, 222 insertions(+), 171 deletions(-)

diff --git a/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs b/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs
index 69578ca..2eefeb0 100644
--- a/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs
@@ -19,6 +19,28 @@
             LoadEvent_ChangeTextVisble();
             LoadEvent_GetVerificationCode();
             LoadEvent_Register();
+
+            LoadEvent_TextChange();
+            //var areaCodeList = pm.GetAreaCode();
+        }
+        /// <summary>
+        /// 鍔犺浇鏂囨湰鍙樺寲浜嬩欢
+        /// </summary>
+        void LoadEvent_TextChange()
+        {
+            etAccount.TextChangeEventHandler += (sender, e) =>
+            {
+                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))
+                {
+                    btnGetVerificationCode.IsSelected = false;
+                }
+                else
+                {
+                    btnGetVerificationCode.IsSelected = true;
+                }
+            };
         }
 
         /// <summary>
@@ -29,6 +51,10 @@
             //閫夋嫨鎵嬫満娉ㄥ唽
             btnPhoneLogin.MouseUpEventHandler += (sender, e) =>
             {
+#if DEBUG
+                etAccount.Text = "17576024298";
+#endif
+
                 #region 鍒囨崲閫変腑鎸夐挳
                 btnEmailLogin.TextColor = CSS_Color.PromptingColor1;
                 btnEmailLogin.TextSize = CSS_FontSize.TextFontSize;
@@ -70,7 +96,6 @@
             };
         }
 
-
         /// <summary>
         /// 鍔犺浇鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
         /// </summary>
@@ -91,56 +116,61 @@
                     btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                     btnAccountViewBottomLine.Height = Application.GetRealHeight(1);
                     //鎵嬫満娉ㄥ唽-楠岃瘉鎵嬫満鍙风爜鏄惁姝g‘
-                    if (registerType == 0)
+                    if (etAccount.Text.Trim().Length > 0)
                     {
-                        Regex reg = new Regex("^\\d+$");
-                        var mFalg = reg.Match(etAccount.Text.Trim());
-                        if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
+                        if (registerType == 0)
                         {
-                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
-                            new Tip()
+
+                            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))
                             {
-                                CloseTime = 3,
-                                Text = Language.StringByID(InternationalizationString.PlsEntryCorrectMobilNeumber),
-                                Direction = AMPopTipDirection.None,
-                            }.Show(bodyView);
-                        }
-                        else
-                        {
-                            //鏍囪鎵嬫満鍙风爜鏈夋晥
-                            btnGetVerificationCode.IsSelected = true;
-                            //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
-                            if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                                new Tip()
+                                {
+                                    CloseTime = 3,
+                                    Text = Language.StringByID(InternationalizationString.PlsEntryCorrectMobilNeumber),
+                                    Direction = AMPopTipDirection.None,
+                                }.Show(bodyView);
+                            }
+                            else
                             {
-                                btnRegister.IsSelected = true;
+                                //鏍囪鎵嬫満鍙风爜鏈夋晥
+                                btnGetVerificationCode.IsSelected = true;
+                                //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
+                                if (btnGetVerificationCode.IsSelected && 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*$");
-                        var mFalg = reg.Match(etAccount.Text.Trim());
-                        if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
+                        else if (registerType == 1)
                         {
-                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
-                            new Tip()
+                            //閭娉ㄥ唽-楠岃瘉閭鏄惁姝g‘
+                            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)$");
+                            var mFalg = reg.Match(etAccount.Text.Trim());
+                            if (!mFalg.Success)
                             {
-                                CloseTime = 3,
-                                Text = Language.StringByID(InternationalizationString.PlsEntryCorrectEmailAddress),
-                                Direction = AMPopTipDirection.None,
-                            }.Show(bodyView);
-                        }
-                        else
-                        {
-                            //鏍囪鎵嬫満鍙风爜鏈夋晥
-                            btnGetVerificationCode.IsSelected = true;
-                            //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
-                            if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                                new Tip()
+                                {
+                                    CloseTime = 3,
+                                    Text = Language.StringByID(InternationalizationString.PlsEntryCorrectEmailAddress),
+                                    Direction = AMPopTipDirection.None,
+                                }.Show(bodyView);
+                            }
+                            else
                             {
-                                btnRegister.IsSelected = true;
+                                //鏍囪鎵嬫満鍙风爜鏈夋晥
+                                btnGetVerificationCode.IsSelected = true;
+                                //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
+                                if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                                {
+                                    btnRegister.IsSelected = true;
+                                }
                             }
                         }
                     }
@@ -148,7 +178,8 @@
             };
 
             //瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
-            etPassword.FoucsChanged += (sender, e) => {
+            etPassword.FoucsChanged += (sender, e) =>
+            {
                 if (etPassword.Foucs)
                 {
                     btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor;
@@ -156,23 +187,30 @@
                 }
                 else
                 {
-                    btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
-                    btnPasswordViewBottomLine.Height = Application.GetRealHeight(1);
-                    //鏍¢獙瀵嗙爜鏄惁绗﹀悎瑕佹眰
-                    if (etPassword.Text.Trim().Length < 6)
+                    //闇�瑕佽緭鍏�6浣嶄互涓婄殑瀵嗙爜
+                    if (etPassword.Text.Length < 6)
                     {
+                        btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
+                        btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1);
+
                         new Tip()
                         {
                             CloseTime = 3,
                             Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.IncorrectRepeatPassword)
+                            Text = Language.StringByID(InternationalizationString.PlsRegisterPassword)
                         }.Show(bodyView);
+                    }
+                    else
+                    {
+                        btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
+                        btnPasswordViewBottomLine.Height = Application.GetRealHeight(1);
                     }
                 }
             };
 
             //纭瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
-            etRepeatPassword.FoucsChanged += (sender, e) => {
+            etRepeatPassword.FoucsChanged += (sender, e) =>
+            {
                 if (etRepeatPassword.Foucs)
                 {
                     btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor;
@@ -183,31 +221,35 @@
                     btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                     btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1);
                     //鏍¢獙涓ゆ杈撳叆鐨勫瘑鐮佹槸鍚︿竴鑷�
-                    if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim())
+                    if (etPassword.Text.Trim().Length > 5)
                     {
-                        btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                        btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2);
-                        new Tip()
+                        if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim())
                         {
-                            CloseTime = 3,
-                            Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.IncorrectRepeatPassword)
-                        }.Show(bodyView);
-                    }
-                    else
-                    {
-                        ValidPassword = true;
-                        //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
-                        if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                            btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                            new Tip()
+                            {
+                                CloseTime = 3,
+                                Direction = AMPopTipDirection.None,
+                                Text = Language.StringByID(InternationalizationString.IncorrectRepeatPassword)
+                            }.Show(bodyView);
+                        }
+                        else
                         {
-                            btnRegister.IsSelected = true;
+                            ValidPassword = true;
+                            //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
+                            if (btnGetVerificationCode.IsSelected && ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                            {
+                                btnRegister.IsSelected = true;
+                            }
                         }
                     }
                 }
             };
 
             //楠岃瘉鐮佹枃鏈鐒︾偣鍙樺寲浜嬩欢
-            etVerificationCode.FoucsChanged += (sender, e) => {
+            etVerificationCode.FoucsChanged += (sender, e) =>
+            {
                 if (etVerificationCode.Foucs)
                 {
                     btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.MainColor;
@@ -217,10 +259,10 @@
                 {
                     btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                     btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(1);
-                    if (etVerificationCode.Text.Length > 4)
+                    if (etVerificationCode.Text.Length > 1)
                     {
                         //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
-                        if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                        if (btnGetVerificationCode.IsSelected && ValidPassword)
                         {
                             btnRegister.IsSelected = true;
                         }
@@ -235,12 +277,14 @@
         void LoadEvent_ChangeTextVisble()
         {
             //瀵嗙爜鏂囨湰鍙鎬у彉鍖�
-            btnVisiblePassword.MouseUpEventHandler += (sender, e) => {
+            btnVisiblePassword.MouseUpEventHandler += (sender, e) =>
+            {
                 btnVisiblePassword.IsSelected = !btnVisiblePassword.IsSelected;
                 etPassword.SecureTextEntry = !btnVisiblePassword.IsSelected;
             };
             //閲嶅瀵嗙爜鏂囨湰鍙鎬у彉鍖�
-            btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) => {
+            btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) =>
+            {
                 btnRepeatVisiblePassword.IsSelected = !btnRepeatVisiblePassword.IsSelected;
                 etRepeatPassword.SecureTextEntry = !btnRepeatVisiblePassword.IsSelected;
             };
@@ -251,46 +295,58 @@
         /// </summary>
         void LoadEvent_GetVerificationCode()
         {
-            btnGetVerificationCode.MouseUpEventHandler += (sender, e) => {
+            btnGetVerificationCode.MouseUpEventHandler += (sender, e) =>
+            {
                 if (btnGetVerificationCode.IsSelected)
                 {
-                    //鐭俊鍙戦�侀棿闅�60s
-                    btnGetVerificationCode.IsSelected = false;
-                    int time = 60;
-                    new Thread(() =>
+                    //鑾峰彇楠岃瘉鐮�
+                    var result = pm.GetPhoneRegisterVerCode(etAccount.Text.Trim());
+                    if (result.StateCode == "Success")
                     {
-                        while (time == 0)
+                        //鐭俊鍙戦�侀棿闅�60s
+                        btnGetVerificationCode.IsSelected = false;
+                        int time = 60;
+                        new Thread(() =>
                         {
-                            time--;
+                            while (time > 0)
+                            {
+                                time--;
+                                Application.RunOnMainThread(() =>
+                                {
+                                    btnGetVerificationCode.Text = time.ToString() + "s";
+                                });
+                                Thread.Sleep(1000);
+                            }
                             Application.RunOnMainThread(() =>
                             {
-                                btnGetVerificationCode.Text = time.ToString() + "s";
+                                //鍥炲鑾峰彇鐭俊鎸夐挳浜嬩欢
+                                btnGetVerificationCode.IsSelected = true;
+                                btnGetVerificationCode.TextID = InternationalizationString.GetVerificationCode;
                             });
-                            Thread.Sleep(1000);
-                        }
-                        Application.RunOnMainThread(() =>
-                        {
-                            //鍥炲鑾峰彇鐭俊鎸夐挳浜嬩欢
-                            btnGetVerificationCode.IsSelected = true;
-                        });
-                    })
-                    { IsBackground = true }.Start();
-                    //妫�鏌ユ墜鏈烘槸鍚﹀凡缁忚娉ㄥ唽
-                    var checkPhoneResult = pm.IsExistingAccount(etAccount.Text.Trim());
-                    //鎵嬫満鏈娉ㄥ唽
-                    if (checkPhoneResult.StateCode != HttpRequesResult.SUCCESS.ToString())
-                    {
-                        //鑾峰彇楠岃瘉鐮�
-                        pm.GetPhoneVerificationCode(etAccount.Text.Trim(), MainPage.Company);
+                        })
+                        { IsBackground = true }.Start();
                     }
-                    else
+                    else 
                     {
-                        //鎻愮ず鎵嬫満鍙风爜宸茬粡娉ㄥ唽
+                        string tipString = "Server error";
+                        switch (result.StateCode)
+                        {
+                            case "Exist":
+                                tipString = Language.StringByID(InternationalizationString.AccountAlreadyExists);
+                                break;
+                            case "SendFail":
+                                tipString = Language.StringByID(InternationalizationString.FailedToSendVerificationCode);
+                                break;
+                            case "Self:Net_Error":
+                                tipString = Language.StringByID(InternationalizationString.NetworkAnomaly);
+                                break;
+                        }
+
                         new Tip()
                         {
                             CloseTime = 3,
                             Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.AccountAlreadyExists)
+                            Text = tipString
                         }.Show(bodyView);
                     }
                 }
@@ -304,84 +360,79 @@
         {
             btnRegister.MouseUpEventHandler += (sender, e) =>
             {
-                //鎵嬫満娉ㄥ唽
-                if (registerType == 0)
+                if (btnRegister.IsSelected)
                 {
-                    //鏍¢獙楠岃瘉鐮�
-                    var validateSmsResult = pm.ValidateSmsCode(etAccount.Text.Trim(), etVerificationCode.Text.Trim());
-                    //楠岃瘉鐮佹牎楠屾垚鍔�
-                    if (validateSmsResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                    {
-                        //娉ㄥ唽璐﹀彿
-                        var registerPhoneResult = pm.RegisterPhone(etAccount.Text.Trim(), etPassword.Text.Trim(), Language.CurrentLanguage);
-                        if (registerPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                        {
-                            //娉ㄥ唽鎴愬姛
-                            //鎵ц鍥炶皟浜嬩欢
-                            callbackAction?.Invoke(etAccount.Text.Trim());
-                        }
-                        else
-                        {
-                            //娉ㄥ唽澶辫触
-                            new Tip()
-                            {
-                                CloseTime = 3,
-                                Text = registerPhoneResult.ErrorInfo,
-                                Direction = AMPopTipDirection.None,
-                            }.Show(bodyView);
-                        }
-                    }
-                    else
-                    {
-                        //楠岃瘉鐮佹牎楠屽け璐�
-                        new Tip()
-                        {
-                            CloseTime = 3,
-                            Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.VerificationCodeWrong)
-                        }.Show(bodyView);
-                    }
-                }
-                else if(registerType == 1)
-                {
-                    //閭娉ㄥ唽
-                    //鏍¢獙楠岃瘉鐮�
-                    var validateSmsResult = pm.ValidateSmsCode(etAccount.Text.Trim(), etVerificationCode.Text.Trim());
-                    //楠岃瘉鐮佹牎楠屾垚鍔�
-                    if (validateSmsResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                    {
-                        //娉ㄥ唽璐﹀彿
-                        var registerPhoneResult = pm.RegisterPhone(etAccount.Text.Trim(), etPassword.Text.Trim(), Language.CurrentLanguage);
-                        if (registerPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                        {
-                            //娉ㄥ唽鎴愬姛
-                            //鎵ц鍥炶皟浜嬩欢
-                            callbackAction?.Invoke(etAccount.Text.Trim());
-                        }
-                        else
-                        {
-                            //娉ㄥ唽澶辫触
-                            new Tip()
-                            {
-                                CloseTime = 3,
-                                Text = registerPhoneResult.ErrorInfo,
-                                Direction = AMPopTipDirection.None,
-                            }.Show(bodyView);
-                        }
-                    }
-                    else
-                    {
-                        //楠岃瘉鐮佹牎楠屽け璐�
-                        new Tip()
-                        {
-                            CloseTime = 3,
-                            Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.VerificationCodeWrong)
-                        }.Show(bodyView);
-                    }
+                    waitPage = new Loading();
+                    new WaitPageMothed().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 == "Success")
+                     {
+                         //娉ㄥ唽鎴愬姛
+                         //鎵ц鍥炶皟浜嬩欢
+                         this.Close();
+                         callbackAction?.Invoke(account);
+                     }
+                     else//娉ㄥ唽澶辫触
+                     {
+                         string erorrInfo = "";
+                         switch (validateSmsResult.StateCode)
+                         {
+                             case "Exist":
+                                 erorrInfo = Language.StringByID(InternationalizationString.AccountAlreadyExists);
+                                 break;
+                             case "PwdNoConfirm":
+                                 erorrInfo = Language.StringByID(InternationalizationString.IncorrectRepeatPassword);
+                                 break;
+                             case "ValidCodeAndPhoneNoEqual":
+                                 erorrInfo = Language.StringByID(InternationalizationString.VerificationCodeWrong);
+                                 break;
+                             default:
+                                 erorrInfo = Language.StringByID(InternationalizationString.RegistrationFailedPleaseTryAgain);
+                                 break;
+                         }
+                         Application.RunOnMainThread(() =>
+                         {
+                             new Tip()
+                             {
+                                 CloseTime = 3,
+                                 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