From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码

---
 ZigbeeApp/Shared/Phone/Login/AccountRegister.cs |  532 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 532 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Login/AccountRegister.cs b/ZigbeeApp/Shared/Phone/Login/AccountRegister.cs
new file mode 100644
index 0000000..081b2f0
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Login/AccountRegister.cs
@@ -0,0 +1,532 @@
+锘縰sing System;
+using Shared.Common;
+using Shared.Phone.Device.CommonForm;
+
+namespace Shared.Phone.Login
+{
+    public class AccountRegister : FrameLayout
+    {
+        #region 鈼� 鍙橀噺____________________________
+        /// <summary>
+        /// 鎵嬫満閭
+        /// </summary>
+        private PhoneEmailForm phoneEmailForm;
+        /// <summary>
+        /// phoneRowForm
+        /// </summary>
+        private PhoneRowForm phoneRow;
+        /// <summary>
+        /// emailRow
+        /// </summary>
+        private EmailRowForm emailRow;
+        /// <summary>
+        /// pwdRow
+        /// </summary>
+        private PwdRowForm pwdRow;
+        /// <summary>
+        /// pwdComfireRow
+        /// </summary>
+        private PwdRowForm pwdComfireRow;
+        /// <summary>
+        /// CodeForRegisterRowForm
+        /// </summary>
+        private CodeForRegisterRowForm codeRow;
+        /// <summary>
+        /// bodyFrameLayout
+        /// </summary>
+        private FrameLayout bodyFrameLayout;
+        /// <summary>
+        /// 璐﹀彿楠岃瘉鐮乫l
+        /// </summary>
+        private FrameLayout accountCodeFL;
+        /// <summary>
+        /// 娉ㄥ唽
+        /// </summary>
+        private Button registerBtn;
+        /// <summary>
+        /// 璐﹀彿鐧诲綍
+        /// </summary>
+        private Button loginByAccountPWDBtn;
+        /// <summary>
+        /// 鐧诲綍閿欒鎻愮ず鎸夐挳
+        /// </summary>
+        private Button errorBtn;
+        /// <summary>
+        /// 璐﹀彿
+        /// </summary>
+        private string account = string.Empty;
+        /// <summary>
+        /// OpenID
+        /// </summary>
+        public string OpenID;
+
+        #endregion
+
+        #region 鈼� 鏋勯�犳柟娉昣________________________
+        public AccountRegister()
+        {
+            CommonPage.Instance.IsDrawerLockMode = true;
+            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            Tag = "Register";
+        }
+        #endregion
+
+        #region 鈼� 鏄剧ず鐣岄潰_________________________
+        /// <summary>
+        /// show
+        /// </summary>
+        public void Show()
+        {
+            //AddTop
+            AddTopFL();
+            //AddBody
+            AddBodyView();
+
+            //bind
+            BindEvent();
+        }
+
+        #endregion
+
+        #region 鈼� 娣诲姞____________________________
+        /// <summary>
+        /// AddTop
+        /// </summary>
+        private void AddTopFL()
+        {
+            var top = new Device.CommonForm.TopFrameLayout();
+            AddChidren(top);
+            top.InitTopview();
+            top.SetTopTitle(Language.StringByID(R.MyInternationalizationString.Register));
+            top.backButton.MouseUpEventHandler += (sender, e) =>
+            {
+                RemoveFromParent();
+            };
+
+        }
+        /// <summary>
+        /// AddBodyView
+        /// </summary>
+        private void AddBodyView()
+        {
+            bodyFrameLayout = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(184),
+                Height = Application.GetRealHeight(1737),
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
+            };
+            AddChidren(bodyFrameLayout);
+
+            phoneEmailForm = new PhoneEmailForm();
+            phoneEmailForm.Init(bodyFrameLayout, 127);
+            phoneEmailForm.SetSelectedColor(ZigbeeColor.Current.GXCButtonBlackSelectedColor);
+
+            accountCodeFL = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(334),
+                Height = Application.GetRealHeight(852),
+                Width = Application.GetRealWidth(942),
+                Gravity = Gravity.CenterHorizontal,
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
+                Radius = (uint)Application.GetRealHeight(17)
+            };
+            bodyFrameLayout.AddChidren(accountCodeFL);
+
+            AddPhoneOrEmailFL(accountCodeFL, "Phone");
+
+            //閿欒鎻愮ずBtn
+            errorBtn = new Button()
+            {
+                X = Application.GetRealWidth(127),
+                Y = Application.GetRealHeight(1060),
+                Width = Application.GetRealWidth(700),
+                Height = Application.GetRealHeight(58),
+                TextColor = ZigbeeColor.Current.GXCTextRed,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CommonFormResouce.TextSize,
+                IsBold = true
+            };
+            bodyFrameLayout.AddChidren(errorBtn);
+
+            registerBtn = new Button()
+            {
+                Y = Application.GetRealHeight(1281),
+                Width = Application.GetRealWidth(688),
+                Height = Application.GetRealHeight(127),
+                Gravity = Gravity.CenterHorizontal,
+                TextID = R.MyInternationalizationString.Register,
+                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+                SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
+                SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor,
+                BackgroundColor = ZigbeeColor.Current.GXCButtonUnSelectedColor,
+                Radius = (uint)Application.GetRealHeight(127 / 2),
+                Enable = !string.IsNullOrEmpty(codeRow.VerificationCodeET?.Text),
+                IsSelected = !string.IsNullOrEmpty(codeRow.VerificationCodeET?.Text),
+                TextSize = 16,
+                IsBold = true,
+            };
+            bodyFrameLayout.AddChidren(registerBtn);
+
+            loginByAccountPWDBtn = new Button()
+            {
+                Y = registerBtn.Bottom + Application.GetRealHeight(50),
+                Width = Application.GetRealWidth(400),
+                Height = Application.GetRealHeight(58),
+                TextID = R.MyInternationalizationString.LoginByAccountPWD_1,
+                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+                TextSize = CommonFormResouce.loginTextSize,
+                Gravity=Gravity.CenterHorizontal
+            };
+            bodyFrameLayout.AddChidren(loginByAccountPWDBtn);
+
+        }
+
+        #endregion
+
+        #region 鈼� 閫夋嫨浜嬩欢_________________________
+        /// <summary>
+        /// phone/email 閫夋嫨
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="mouseEventArgs"></param>
+        private void SelectPhoneOrEmail_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs)
+        {
+            phoneEmailForm.SelectedPhone.IsSelected = phoneEmailForm.SelectedEmail.IsSelected = false;
+            phoneEmailForm.SelectedPhone.IsBold = phoneEmailForm.SelectedEmail.IsBold = false;
+            registerBtn.Enable = registerBtn.IsSelected = false;
+            (sender as Button).IsSelected = (sender as Button).IsBold = true;
+            account = string.Empty;
+            errorBtn.Text = string.Empty;
+            if ((sender as Button).Tag.ToString() == "Phone")
+            {
+                AddPhoneOrEmailFL(accountCodeFL, "Phone");
+            }
+            else
+            {
+                AddPhoneOrEmailFL(accountCodeFL, "Email");
+            }
+        }
+
+        /// <summary>
+        /// AddPhoneOrEmailFL
+        /// </summary>
+        /// <param name="accountCodeFrameLayout"></param>
+        /// <param name="phoneOrEmail"></param>
+        private void AddPhoneOrEmailFL(FrameLayout accountCodeFrameLayout, string phoneOrEmail)
+        {
+            accountCodeFrameLayout.RemoveAll();
+            if (phoneOrEmail == "Phone")
+            {
+                phoneRow = new PhoneRowForm();
+                phoneRow.Init(accountCodeFrameLayout, this, this.account, 29, 29);
+                phoneRow.AccountET.TextChangeEventHandler += Account_TextChange;
+            }
+            else
+            {
+                emailRow = new EmailRowForm();
+                emailRow.Init(accountCodeFrameLayout, this.account, 29, 29);
+                emailRow.AccountET.TextChangeEventHandler += Account_TextChange;
+            }
+            pwdRow = new PwdRowForm();
+            pwdRow.Init(accountCodeFrameLayout, 29, 196);
+            pwdRow.PasswrodET.TextChangeEventHandler += Code_TextChange;
+
+            pwdComfireRow = new PwdRowForm();
+            pwdComfireRow.Init(accountCodeFrameLayout, 29, 363);
+            pwdComfireRow.PasswrodET.TextChangeEventHandler += Code_TextChange;
+            pwdComfireRow.SetPlaceholdText(Language.StringByID(R.MyInternationalizationString.PleaseComfirePWD));
+
+            codeRow = new CodeForRegisterRowForm();
+            codeRow.Init(accountCodeFrameLayout, 29, 530);
+            codeRow.VerificationCodeET.TextChangeEventHandler += Code_TextChange;
+            codeRow.SendCodeBtn.ButtonClickEvent += SendCode_MouseUpEventAsync;
+        }
+        #endregion
+
+        #region 鈼� 缁戝畾浜嬩欢_________________________
+
+        /// <summary>
+        /// 缁戝畾鎸夐挳浜嬩欢
+        /// </summary>
+        private void BindEvent()
+        {
+            //閫夋嫨鎵嬫満閭
+            phoneEmailForm.SelectedPhone.MouseUpEventHandler += SelectPhoneOrEmail_MouseUpEvent;
+            phoneEmailForm.SelectedEmail.MouseUpEventHandler += SelectPhoneOrEmail_MouseUpEvent;
+            registerBtn.MouseUpEventHandler += Register;
+            loginByAccountPWDBtn.MouseUpEventHandler += LoginByPWD;
+            codeRow.VerificationCodeET.TextChangeEventHandler += Code_TextChange;
+        }
+        #endregion
+
+        #region 鈼� 娉ㄥ唽浜嬩欢_________________________
+        //// <summary>
+        ///  娉ㄥ唽
+        ///  </summary>
+        /// <param name="sender">Sender.</param>
+        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
+        private void Register(object sender, MouseEventArgs mouseEventArgs)
+        {
+            if (CheckAccount(account) == false)
+            {
+                return;
+            }
+            if (pwdRow.PasswrodET.Text.Trim() != pwdComfireRow.PasswrodET.Text.Trim())
+            {
+                errorBtn.TextID = R.MyInternationalizationString.TwoPasswordInconsistency;
+                return;
+            }
+
+            if (AccountLogic.Instance.CheckPwdLength(pwdRow.PasswrodET.Text.Trim()) == false)
+            {
+                errorBtn.TextID = R.MyInternationalizationString.ThePWDLengthError;
+                return;
+            }
+
+            CommonPage.Loading.Start();
+            try
+            {
+                var reqDto = new SendDataToServer.RegisterAccountObj()
+                {
+                    Account = account,
+                    Password = pwdRow.PasswrodET.Text.Trim(),
+                    EnterPassword = pwdComfireRow.PasswrodET.Text.Trim(),
+                    Language = CommonPage.ZigBeeLanguage,
+                    Code = codeRow.VerificationCodeET.Text.Trim(),
+                    RegisterSoruce = CommonPage.RegisterSoruceFromZIGBEE,
+                    AreaCode = int.Parse(CommonPage.PhoneZoneStr)
+                };
+                //楠岃瘉楠岃瘉鐮�
+                var requestRevertObj = CommonFormResouce.Register(reqDto);
+                if (requestRevertObj == null)
+                {
+                    CommonPage.Instance.FailureToServer();
+                    return;
+                }
+                var stateCodeStr = requestRevertObj.StateCode.ToUpper();
+                if (stateCodeStr == "SUCCESS")
+                {
+                    var registerSuccess = new AccountRegisterSuccess();
+                    CommonPage.Instance.AddChidren(registerSuccess);
+                    registerSuccess.ShowForm(account, pwdRow.PasswrodET.Text.Trim(), OpenID);
+                }
+                else if (stateCodeStr == "EXIST")
+                {
+                    //宸叉敞鍐�
+                    errorBtn.TextID = R.MyInternationalizationString.AccountHasBeenRegistered;
+                }
+                else if (stateCodeStr == "PARAMETEROREMPTY")
+                {
+                    //鎻愪緵鐨勫弬鏁伴敊璇�
+                    errorBtn.TextID = R.MyInternationalizationString.PARAMETEROREMPTY;
+                }
+                else if (stateCodeStr == "PWDNOCONFIRM")
+                {
+                    //涓ゆ瀵嗙爜涓嶄竴鏍�
+                    errorBtn.TextID = R.MyInternationalizationString.TwoPasswordInconsistency;
+                }
+                else if (stateCodeStr == "VALIDCODEANDPHONENOEQUAL")
+                {
+                    //楠岃瘉鐮侀敊璇�
+                    errorBtn.TextID = R.MyInternationalizationString.VALIDCODEANDPHONENOEQUAL;
+                }
+                else if (stateCodeStr == "NORECORD")
+                {
+                    errorBtn.TextID = R.MyInternationalizationString.NORECORD;
+                }
+                else
+                {
+                    errorBtn.TextID = R.MyInternationalizationString.RequestServerFailed;
+                }
+            }
+            catch
+            {
+                errorBtn.TextID = R.MyInternationalizationString.RequestServerFailed;
+            }
+            finally
+            {
+                CommonPage.Loading.Hide();
+            }
+        }
+
+        #endregion
+
+        #region 鈼� 瀵嗙爜鐧诲綍_________________________
+        /// <summary>
+        /// 閫氳繃瀵嗙爜鐧诲綍
+        /// </summary>
+        /// <param name="sender">Sender.</param>
+        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
+        private void LoginByPWD(object sender, MouseEventArgs mouseEventArgs)
+        {
+            this.RemoveFromParent();
+        }
+
+        #endregion
+
+        #region 鈼� 璐﹀彿銆侀獙璇佺爜鐩戝惉__________________
+        /// <summary>
+        /// 璐﹀彿鐩戝惉
+        /// </summary>
+        /// <param name="sender">Sender.</param>
+        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
+        private void Account_TextChange(object sender, string mouseEventArgs)
+        {
+            errorBtn.Text = string.Empty;
+            if ((sender as EditText).Text.Trim().Length > 0)
+            {
+                if (codeRow.SendCodeBtn.CanClick == false)
+                {
+                    codeRow.SendCodeBtn.CanClick = true;
+                    codeRow.SendCodeBtn.BackgroundColor = 0xFFFC744B;
+                }
+            }
+            else
+            {
+                codeRow.SendCodeBtn.CanClick = false;
+                codeRow.SendCodeBtn.BackgroundColor = 0xFFFEBCA9;
+            }
+            account = (sender as EditText).Text.Trim();
+        }
+
+        /// <summary>
+        /// code鐩戝惉浜嬩欢
+        /// </summary>
+        /// <param name="sender">Sender.</param>
+        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
+        private void Code_TextChange(object sender, string mouseEventArgs)
+        {
+            errorBtn.Text = string.Empty;
+            if (codeRow.VerificationCodeET.Text.Trim().Length > 0 && account.Trim().Length > 0 && pwdRow.PasswrodET.Text.Trim().Length > 0 && pwdComfireRow.PasswrodET.Text.Trim().Length > 0)
+            {
+                registerBtn.Enable = registerBtn.IsSelected = true;
+            }
+            else
+            {
+                registerBtn.Enable = registerBtn.IsSelected = false;
+            }
+        }
+
+        #endregion
+
+        #region 鈼� 鍙戦�侀獙璇佺爜________________________
+        /// <summary>
+        /// 鍙戦�侀獙璇佺爜
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="mouseEventArgs"></param>
+        private void SendCode_MouseUpEventAsync(object sender, MouseEventArgs mouseEventArgs)
+        {
+            if (CheckAccount(account) == false)
+            {
+                return;
+            }
+            //鍏堝垽鏂�2娆″瘑鐮佽緭鍏ユ槸鍚︿竴鑷�
+            if (pwdRow.PasswrodET.Text.Trim() != pwdComfireRow.PasswrodET.Text.Trim())
+            {
+                errorBtn.TextID = R.MyInternationalizationString.TwoPasswordInconsistency;
+                return;
+            }
+
+            if (AccountLogic.Instance.CheckPwdLength(pwdRow.PasswrodET.Text.Trim()) == false)
+            {
+                errorBtn.TextID = R.MyInternationalizationString.ThePWDLengthError;
+                return;
+            }
+
+            CommonPage.Loading.Start();
+            (sender as UserCenter.NormalViewControl).CanClick = false;
+            try
+            {
+                int companyInt = 0;
+                if (CommonPage.PhoneZoneStr == "86")
+                {
+                    companyInt = CommonPage.Company;
+                }
+                else
+                {
+                    companyInt = CommonPage.CompanyForINTERNETION;
+                }
+                var reqDto = new SendDataToServer.RegisterSendVerCodeObj()
+                {
+                    Account = account,
+                    Company = companyInt,
+                    AreaCode = int.Parse(CommonPage.PhoneZoneStr),
+                    Language = CommonPage.ZigBeeLanguage
+                };
+                var requestRevertObj = CommonFormResouce.RegisterSendVerCode(reqDto);
+                if (requestRevertObj == null)
+                {
+                    CommonPage.Instance.FailureToServer();
+                    (sender as UserCenter.NormalViewControl).CanClick = true;
+                    return;
+                }
+                var stateCodeStr = requestRevertObj.StateCode.ToUpper();
+                if (stateCodeStr == "SUCCESS")
+                {
+                    codeRow.TimeBegin();
+                    var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.SendVerificationCodeSuccess), Language.StringByID(R.MyInternationalizationString.Confrim));
+                    alert.Show();
+                    return;
+                }
+
+                if (stateCodeStr == "PARAMETEROREMPTY")
+                {
+                    //鎻愪緵鐨勫弬鏁伴敊璇�
+                    errorBtn.TextID = R.MyInternationalizationString.PARAMETEROREMPTY;
+                }
+                else if (stateCodeStr == "SENDFAIL")
+                {
+                    //楠岃瘉鐮佸彂閫佸け璐�
+                    errorBtn.TextID = R.MyInternationalizationString.SENDFAIL;
+                }
+                else if (stateCodeStr == "EXIST")
+                {
+                    //璐﹀彿瀛樺湪
+                    errorBtn.TextID = R.MyInternationalizationString.AccountHasBeenRegistered;
+                }
+                else
+                {
+                    errorBtn.TextID = R.MyInternationalizationString.RequestServerFailed;
+                }
+            }
+            catch
+            {
+                errorBtn.TextID = R.MyInternationalizationString.RequestServerFailed;
+            }
+            finally
+            {
+                CommonPage.Loading.Hide();
+            }
+        }
+
+        /// <summary>
+        /// CheckAccount
+        /// </summary>
+        /// <param name="accountStr"></param>
+        /// <returns></returns>
+        private bool CheckAccount(string accountStr)
+        {
+            errorBtn.Text = string.Empty;
+            if (phoneEmailForm.SelectedEmail.IsSelected)
+            {
+                if (AccountLogic.Instance.CheckEmail(accountStr) == false)
+                {
+                    errorBtn.TextID = R.MyInternationalizationString.TheEmailError;
+                    return false;
+                }
+            }
+            else
+            {
+                if (AccountLogic.Instance.CheckPhoneWithZone(accountStr, CommonPage.PhoneZoneStr) == false)
+                {
+                    errorBtn.TextID = R.MyInternationalizationString.ThePhoneError;
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0