From c44b10e4447e84dbdfa9105edf460ef364a8f2b3 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 30 十一月 2020 19:53:35 +0800
Subject: [PATCH] Merge branch 'master' into WJC

---
 HDL_ON/UI/UI1-Login/RegisterPageBLL.cs |  370 +++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 250 insertions(+), 120 deletions(-)

diff --git a/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs b/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs
index d997321..b6dc594 100644
--- a/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs
@@ -21,6 +21,7 @@
             LoadEvent_Register();
             LoadEvent_LimtPasswordLength();
             LoadEvent_TextChange();
+            LoadEvent_Server();
             //var areaCodeList = pm.GetAreaCode();
         }
         /// <summary>
@@ -30,11 +31,11 @@
         {
             etAccount.TextChangeEventHandler = (sender, e) =>
             {
-                Regex reg = new Regex(@"^[1]+\d{10}");
-                var mFalg = reg.Match(etAccount.Text.Trim());
+                //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)
+                    if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode))
                     {
                         btnGetVerificationCode_Phone.IsSelected = false;
                     }
@@ -46,7 +47,7 @@
                 }
                 else//閭娉ㄥ唽鑾峰彇楠岃瘉鐮佹寜閽敓鏁堟潯浠�
                 {
-                    if (!mFalg.Success)
+                    if (!Utlis.CheckEmail(etAccount.Text.Trim()))
                     {
                         btnGetVerificationCode_Mail.IsSelected = false;
                     }
@@ -68,10 +69,11 @@
             //閫夋嫨鎵嬫満娉ㄥ唽
             btnPhoneLogin.MouseUpEventHandler = (sender, e) =>
             {
-                if(registerType == 0)
+                if (registerType == 0)
                 {
                     return;
                 }
+                etAccount.IsNumberKeyboardType = true;
                 etAccount.Text = registerPhone;
                 etPassword.Text = "";
                 etRepeatPassword.Text = "";
@@ -100,6 +102,8 @@
             {
                 if (registerType == 1)
                     return;
+
+                etAccount.IsNumberKeyboardType = false;
                 etAccount.Text = registerEmail;
                 etPassword.Text = "";
                 etRepeatPassword.Text = "";
@@ -148,9 +152,7 @@
                     {
                         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))
+                            if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode))
                             {
                                 btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                                 btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
@@ -179,10 +181,7 @@
                         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)
+                            if (!Utlis.CheckEmail(etAccount.Text.Trim()))
                             {
                                 btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                                 btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
@@ -208,7 +207,7 @@
                             }
                         }
                     }
-                    if(accountType ==0)
+                    if (accountType == 0)
                     {
                         registerPhone = etAccount.Text.Trim();
                     }
@@ -366,74 +365,125 @@
         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();
-               }
-           };
+            {
+                if ((sender as Button).IsSelected)
+                {
+                    //鍒ゆ柇鏄惁閫夋嫨浜嗘湇鍔″櫒锛岄�夋嫨浜嗘墠鑳藉彂閫侀獙璇佺爜
+                    if (CheckIfSelectServer() == false) return;
+
+                    string account = etAccount.Text.Trim();
+                    int time = 60;
+                    new Thread(() =>
+                    {
+                        //1.鍏堟鏌ヨ处鍙锋槸鍚︽敞鍐岃繃
+                        var result = pm.GetRegionByAccount(account);
+                        //2.璐﹀彿涓嶅瓨鍦紝鎵嶅厑璁哥户缁敞鍐�
+                        if (result.Code == StateCode.ACCOUNT_NOT_EXIST)
+                        {
+                            //璐﹀彿涓嶅瓨鍦� 鏈敞鍐屽厑璁稿彂閫侀獙璇佺爜娉ㄥ唽
+                            Application.RunOnMainThread(() =>
+                            {
+                                //鐭俊鍙戦�侀棿闅�60s
+                                (sender as Button).IsSelected = false;
+
+                            });
+                            //2.1 寮�濮嬪�掕鏃�
+                            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();
+
+                            //2.2  鑾峰彇楠岃瘉鐮�
+                            ResponsePackNew resultObj;
+                            if (registerType == 1)//閭
+                            {
+                                resultObj = pm.VerificationCodeSend(VerifyType.REGISTER_USER, account);
+                            }
+                            else
+                            {
+                                resultObj = pm.VerificationCodeSend(VerifyType.REGISTER_USER, account, true, phoneZoneCode);
+                            }
+
+                            if (resultObj.Code != StateCode.SUCCESS)
+                            {
+                                // 鎻愮ず閿欒
+                                IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
+                            }
+
+                        }
+                        else if (result.Code.ToUpper() == StateCode.SUCCESS)
+                        {
+                            //3.鎻愮ず璐﹀彿宸插瓨鍦紝鏃犳硶閲嶅娉ㄥ唽
+                            Utlis.ShowAlertOnMainThread(Language.StringByID(StringId.AccountAlreadyUse));
+                        }
+                        else
+                        {
+                            //4.鎻愮ず鍏跺畠寮傚父閿欒
+                            IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
+                        }
+                    })
+                    { IsBackground = true }.Start();
+
+                    //(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(() =>
+                    //{
+                    //    ResponsePackNew resultObj;
+                    //    // 鑾峰彇楠岃瘉鐮�
+                    //    if (registerType == 1)//閭
+                    //    {
+                    //         resultObj = pm.VerificationCodeSend(VerifyType.REGISTER_USER, account);
+                    //    }
+                    //    else
+                    //    {
+                    //         resultObj = pm.VerificationCodeSend(VerifyType.REGISTER_USER, account, true, phoneZoneCode);
+                    //    }
+
+                    //    if (resultObj.Code != StateCode.SUCCESS_CODE)
+                    //    {
+                    //       // 鎻愮ず閿欒
+                    //       IMessageCommon.Current.ShowErrorInfoAlter(NewAPI.API_POST_Verification_Send, resultObj.Code);
+                    //    }
+                    //})
+                    //{ IsBackground = true }.Start();
+                }
+            };
 
             btnGetVerificationCode_Phone.MouseDownEventHandler = eventHandler;
             btnGetVerificationCode_Mail.MouseDownEventHandler = eventHandler;
@@ -446,7 +496,7 @@
         {
             btnRegister.MouseUpEventHandler = (sender, e) =>
             {
-                if(etPassword.Text.Trim().Length > 13 || etPassword.Text.Trim().Length<6)
+                if (etPassword.Text.Trim().Length > 13 || etPassword.Text.Trim().Length < 6)
                 {
                     new Tip()
                     {
@@ -458,6 +508,9 @@
                 }
                 if (btnRegister.IsSelected)
                 {
+                    //鍒ゆ柇鏄惁閫夋嫨浜嗘湇鍔″櫒锛岄�夋嫨浜嗘墠鑳藉彂閫侀獙璇佺爜
+                    if (CheckIfSelectServer() == false) return;
+
                     waitPage = new Loading();
                     new PublicAssmebly().LoadPage_WaitPage(LoadMethod_RegisterThread(), bodyView, waitPage);
                 }
@@ -477,10 +530,10 @@
             {
                 try
                 {
-                    //鏍¢獙楠岃瘉鐮�/娉ㄥ唽璐﹀彿
-                    var validateSmsResult = pm.ValidataCodeAndRegister(account, password, entryPassword, verCode, 86);
-                    //楠岃瘉鐮佹牎楠屾垚鍔�
-                    if (validateSmsResult.StateCode.ToUpper() == "SUCCESS")
+                    //鏍¢獙楠岃瘉鐮佸苟娉ㄥ唽璐﹀彿
+                    var isPhone = registerType == 0;
+                    var validateSmsResult = pm.ValidataCodeAndRegister(account, password, verCode, isPhone);
+                    if (validateSmsResult.Code == StateCode.SUCCESS)
                     {
                         //娉ㄥ唽鎴愬姛
                         //鎵ц鍥炶皟浜嬩欢
@@ -491,41 +544,45 @@
                             LoadEvent_AutoLogin(account, password);
                         });
                     }
-                    else//娉ㄥ唽澶辫触
+                    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);
-                        });
+                        // 鎻愮ず閿欒
+                        IMessageCommon.Current.ShowErrorInfoAlter(validateSmsResult.Code);
+
+                        //2020-11-13 寰呬慨鏀�
+                        //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)
@@ -541,5 +598,78 @@
                 }
             });
         }
+
+        /// <summary>
+        /// 鍔犺浇鏈嶅姟鍣ㄩ�夋嫨鎸夐挳浜嬩欢
+        /// </summary>
+        void LoadEvent_Server()
+        {
+            //鍒ゆ柇涔嬪墠鏄惁閫夋嫨杩�
+            if (UserInfo.Current.GlobalRegion != null && !string.IsNullOrEmpty(UserInfo.Current.GlobalRegion.regionUrl))
+            {
+
+                SetServerText();
+            }
+
+            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+            {
+                Action selectAction = () =>
+                {
+                    //鏈嶅姟鍣ㄩ�夋嫨杩囨爣璁颁负true
+                    SetServerText();
+                };
+                new SelectServerDialog(selectAction).LoadPage();
+
+            };
+
+            btnServerGo.MouseUpEventHandler = eventHandler;
+            btnServerText.MouseUpEventHandler = eventHandler;
+        }
+
+        /// <summary>
+        /// 妫�娴嬫槸鍚﹂�夋嫨浜嗘湇鍔″櫒
+        /// </summary>
+        /// <returns></returns>
+        private bool CheckIfSelectServer()
+        {
+            if (isSelectServer == false)
+            {
+                //璇峰厛閫夋嫨鍥藉/鍖哄煙
+                Utlis.ShowTip(Language.StringByID(StringId.PleaseSelectCountryOrRegion));
+                ShowServerBottomLineState(true);
+                return false;
+            }
+            return true;
+        }
+
+        /// <summary>
+        /// 鏈嶅姟鍣ㄤ笅鍒掔嚎鏍峰紡
+        /// </summary>
+        /// <param name="isError"></param>
+        void ShowServerBottomLineState(bool isError)
+        {
+            if (isError)
+            {
+                btnServerBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                btnServerBottomLine.Height = Application.GetRealHeight(2);
+            }
+            else
+            {
+                btnServerBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
+                btnServerBottomLine.Height = Application.GetRealHeight(1);
+            }
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        void SetServerText()
+        {
+            //鏈嶅姟鍣ㄩ�夋嫨杩囨爣璁颁负true
+            isSelectServer = true;
+            ShowServerBottomLineState(false);
+            btnServerText.TextColor = CSS_Color.FirstLevelTitleColor;
+            btnServerText.Text = UserInfo.Current.GlobalRegion.regionName;
+        }
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0