From 99253403b560f761d5f9af8b4f5140496996433a Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 20 十一月 2020 16:49:50 +0800
Subject: [PATCH] 新云端的代码Ver1.0

---
 ZigbeeApp/Shared/Phone/Common/Logic/HdlCheckLogic.cs |  684 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 363 insertions(+), 321 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlCheckLogic.cs b/ZigbeeApp/Shared/Phone/Common/Logic/HdlCheckLogic.cs
old mode 100755
new mode 100644
similarity index 80%
rename from ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlCheckLogic.cs
rename to ZigbeeApp/Shared/Phone/Common/Logic/HdlCheckLogic.cs
index bdfd26b..0da5903
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlCheckLogic.cs
+++ b/ZigbeeApp/Shared/Phone/Common/Logic/HdlCheckLogic.cs
@@ -1,321 +1,363 @@
-锘縰sing Shared.Common;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Text.RegularExpressions;
-
-namespace Shared.Phone.UserCenter
-{
-    public class HdlCheckLogic
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// 涓汉涓績鐨勬娴嬮�昏緫
-        /// </summary>
-        private static HdlCheckLogic m_Current = null;
-        /// <summary>
-        /// 涓汉涓績鐨勬娴嬮�昏緫
-        /// </summary>
-        public static HdlCheckLogic Current
-        {
-            get
-            {
-                if (m_Current == null)
-                {
-                    m_Current = new HdlCheckLogic();
-                }
-                return m_Current;
-            }
-        }
-
-        #endregion
-
-        #region 鈻� 鍚勭姝g‘妫�娴媉______________________
-
-        /// <summary>
-        /// 鍒ゆ柇鏄惁鍖呭惈澶у啓瀛楁瘝
-        /// </summary>
-        /// <returns><c>true</c>, if contain upper was checked, <c>false</c> otherwise.</returns>
-        /// <param name="value">Value.</param>
-        public bool CheckContainUpper(string value)
-        {
-            Regex reg = new Regex("[A-Z]+");
-            return reg.IsMatch(value);
-        }
-
-        /// <summary>
-        /// 鍒ゆ柇鏄惁鍖呭惈灏忓啓瀛楁瘝
-        /// </summary>
-        /// <returns><c>true</c>, if contain lower was checked, <c>false</c> otherwise.</returns>
-        /// <param name="value">Value.</param>
-        public bool CheckContainLower(string value)
-        {
-            Regex reg = new Regex("[a-z]+");
-            return reg.IsMatch(value);
-        }
-
-        /// <summary>
-        /// 鍒ゆ柇鏄惁鍖呭惈鏁板瓧
-        /// </summary>
-        /// <returns><c>true</c>, if contain lower was checked, <c>false</c> otherwise.</returns>
-        /// <param name="value">Value.</param>
-        public bool CheckContainNum(string value)
-        {
-            Regex reg = new Regex("[0-9]+");
-            return reg.IsMatch(value);
-        }
-
-        /// <summary>
-        /// 鍒ゆ柇鏄惁鍖呭惈绗﹀彿
-        /// </summary>
-        /// <returns><c>true</c>, if contain lower was checked, <c>false</c> otherwise.</returns>
-        /// <param name="value">Value.</param>
-        public bool CheckContainSymbol(string value)
-        {
-            Regex reg = new Regex("([^a-z0-9A-Z])+");
-            return reg.IsMatch(value);
-        }
-
-        /// <summary>
-        /// 妫�娴嬮偖绠辨槸鍚﹀悎娉�
-        /// </summary>
-        /// <param name="email"></param>
-        /// <returns></returns>
-        public bool CheckEmail(string email)
-        {
-            Regex reg = new Regex(CommonPage.EmailRegexStr);
-            return reg.IsMatch(email);
-        }
-
-        /// <summary>
-        /// 妫�娴嬫墜鏈哄彿鏄惁鍚堟硶
-        /// </summary>
-        /// <param name="phoneNumber">鎵嬫満鍙�</param>
-        /// <param name="areaCode">鍦板尯浠g爜</param>
-        /// <returns></returns>
-        public bool CheckPhoneNumber(string phoneNumber, string areaCode)
-        {
-            //鏍¢獙澶栧浗鎵嬫満鍙�
-            if (areaCode != "86")
-            {
-                Regex reg = new Regex(CommonPage.PhoneForForeignRegexStr);
-                return reg.IsMatch(phoneNumber);
-            }
-
-            //鏍¢獙鍥藉唴鎵嬫満鍙�
-            if (phoneNumber.Length > 11)
-            {
-                return false;
-            }
-            else if (phoneNumber.Length == 11)
-            {
-                Regex reg = new Regex(CommonPage.PhoneRegexStr);
-                return reg.IsMatch(phoneNumber);
-            }
-            else
-            {
-                //姝e垯琛ㄨ揪寮忓垽鏂槸鍚︽暟瀛�
-                Regex reg = new Regex("^[0-9]*$");
-                return reg.IsMatch(phoneNumber);
-            }
-        }
-
-        /// <summary>
-        /// 妫�娴嬪瓧绗︿覆鏄惁鏄函鏁板瓧
-        /// </summary>
-        /// <param name="i_text"></param>
-        /// <returns></returns>
-        public bool CheckIsNumber(string i_text)
-        {
-            foreach (var c in i_text)
-            {
-                if (char.IsNumber(c) == false)
-                {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        #endregion
-
-        #region 鈻� 妫�娴嬬綉鍏冲叡閫氶敊璇姸鎬佺爜_____________
-
-        /// <summary>
-        /// <para>妫�娴嬬綉鍏宠繑鍥炵殑鍏遍�氶敊璇姸鎬佺爜(杩斿洖null鍒欎唬琛ㄦ病鏈夐敊璇�),鏀寔鐘舵�佺爜涓�</para>
-        /// <para>1锛氱綉鍏虫棤娉曡В鏋愬懡浠ゆ暟鎹��</para> 
-        /// <para>2锛氬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁</para> 
-        /// <para>3锛氭搷浣滆澶�/缁�/鍦烘櫙涓嶅瓨鍦�</para> 
-        /// <para>4锛氬叾浠栭敊璇�</para> 
-        /// <para>5锛氭暟鎹紶杈撻敊璇紙鍦ㄦ煇娆″鎴风鍚戠綉鍏冲彂閫佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級</para> 
-        /// </summary>
-        /// <param name="resultData">缃戝叧杩斿洖鐨剅esultData,閲岄潰鏈夈�恊rrorResponData銆戣繖涓笢瑗跨殑閭g瀵硅薄</param>
-        /// <returns></returns>
-        public string CheckCommonErrorCode(object resultData)
-        {
-            if (resultData == null)
-            {
-                return null;
-            }
-            Type myType = resultData.GetType();
-            object errorObj = myType.InvokeMember("errorResponData", System.Reflection.BindingFlags.GetField, null, resultData, null);
-            if (errorObj == null)
-            {
-                return null;
-            }
-            Type type = errorObj.GetType();
-            var code = type.InvokeMember("Error", System.Reflection.BindingFlags.GetField, null, errorObj, null);
-            int errorCode = Convert.ToInt32(code);
-
-            return CheckCommonErrorCode(errorCode);
-        }
-
-        /// <summary>
-        /// <para>妫�娴嬬綉鍏宠繑鍥炵殑鍏遍�氶敊璇姸鎬佺爜(杩斿洖null鍒欎唬琛ㄦ病鏈夐敊璇�),鏀寔鐘舵�佺爜涓�</para>
-        /// <para>1锛氱綉鍏虫棤娉曡В鏋愬懡浠ゆ暟鎹��</para> 
-        /// <para>2锛氬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁</para> 
-        /// <para>3锛氭搷浣滆澶�/缁�/鍦烘櫙涓嶅瓨鍦�</para> 
-        /// <para>4锛氬叾浠栭敊璇�</para> 
-        /// <para>5锛氭暟鎹紶杈撻敊璇紙鍦ㄦ煇娆″鎴风鍚戠綉鍏冲彂閫佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級</para> 
-        /// </summary>
-        /// <param name="errorCode">閿欒浠g爜</param>
-        /// <returns></returns>
-        public string CheckCommonErrorCode(int errorCode)
-        {
-            if (errorCode == 1)
-            {
-                //缃戝叧鏃犳硶瑙f瀽鍛戒护鏁版嵁
-                return Language.StringByID(R.MyInternationalizationString.uGatewayCannotResolveCommand);
-            }
-            else if (errorCode == 2)
-            {
-                //鍗忚皟鍣ㄦ鍦ㄥ崌绾ф垨澶囦唤鎴栨仮澶嶆暟鎹腑
-                string msg = Language.StringByID(R.MyInternationalizationString.uCoordinatorIsUpOrBackupOrRecovering);
-            }
-            else if (errorCode == 3)
-            {
-                //鐩爣璁惧涓嶅瓨鍦�
-                string msg = Language.StringByID(R.MyInternationalizationString.uTargetDeviceIsNotExsit);
-            }
-            else if (errorCode == 4)
-            {
-                //鍑虹幇鏈煡閿欒,璇风◢鍚庡啀璇�
-                string msg = Language.StringByID(R.MyInternationalizationString.uUnKnowErrorAndResetAgain);
-            }
-            else if (errorCode == 5)
-            {
-                //鏁版嵁浼犺緭閿欒,璇风◢鍚庡啀璇�
-                string msg = Language.StringByID(R.MyInternationalizationString.uDataTransmissionFailAndResetAgain);
-            }
-            return null;
-        }
-
-        #endregion
-
-        #region 鈻� 妫�娴嬭处鍙锋槸鍚﹀凡缁忛��鍑篲______________
-
-        /// <summary>
-        /// 妫�娴嬭处鍙锋槸鍚﹀凡缁忛��鍑� true:宸茬粡閫�鍑� false:娌℃湁閫�鍑�
-        /// </summary>
-        /// <returns></returns>
-        public bool IsAccountLoginOut()
-        {
-            return Config.Instance.HomeId == string.Empty;
-        }
-
-        #endregion
-
-        #region 鈻� 浜屾瀹夊叏楠岃瘉_______________________
-
-        /// <summary>
-        /// 鎵ц浜屾瀹夊叏楠岃瘉(涓夌楠岃瘉鐨勬爣棰樹娇鐢ㄩ粯璁ゅ�硷細Touch ID楠岃瘉,瀵嗙爜楠岃瘉,鎵嬪娍楠岃瘉)
-        /// </summary>
-        /// <param name="SuccessAction">濡傛灉璁剧疆鏈夐獙璇佹柟寮�,骞朵笖楠岃瘉鎴愬姛鍚庢墠浼氳皟鐢ㄧ殑鍥炶皟鍑芥暟,涓嶇劧涓嶄細璋冪敤杩欎釜涓滆タ</param>
-        /// <param name="NotSettionAction">濡傛灉瀹屽叏娌℃湁璁剧疆鏈夐獙璇佹柟寮�,鎵嶄細璋冪敤鐨勫洖璋冨嚱鏁�,涓嶇劧涓嶄細璋冪敤杩欎釜涓滆タ(鍙栨秷杈撳叆涓嶄細璋冪敤杩欎釜涓滆タ)</param>
-        public void CheckSecondarySecurity(Action SuccessAction, Action NotSettionAction = null)
-        {
-            CheckSecondarySecurity(
-                Language.StringByID(R.MyInternationalizationString.uTouchIDCheck),
-                Language.StringByID(R.MyInternationalizationString.uPasswordAuthentication),
-                Language.StringByID(R.MyInternationalizationString.uGestureAuthentication),
-                SuccessAction, NotSettionAction);
-        }
-
-        /// <summary>
-        /// 鎵ц浜屾瀹夊叏楠岃瘉
-        /// </summary>
-        /// <param name="i_TouchText">Touch ID楠岃瘉鐨勬樉绀烘枃鏈�</param>
-        /// <param name="i_PasswordText">瀵嗙爜楠岃瘉鐨勬樉绀烘枃鏈�</param>
-        /// <param name="i_GestureText">鎵嬪娍楠岃瘉鐨勬樉绀烘枃鏈�</param>
-        /// <param name="SuccessAction">濡傛灉璁剧疆鏈夐獙璇佹柟寮�,骞朵笖楠岃瘉鎴愬姛鍚庢墠浼氳皟鐢ㄧ殑鍥炶皟鍑芥暟,涓嶇劧涓嶄細璋冪敤杩欎釜涓滆タ</param>
-        /// <param name="NotSettionAction">濡傛灉瀹屽叏娌℃湁璁剧疆鏈夐獙璇佹柟寮�,鎵嶄細璋冪敤鐨勫洖璋冨嚱鏁�,涓嶇劧涓嶄細璋冪敤杩欎釜涓滆タ(鍙栨秷杈撳叆涓嶄細璋冪敤杩欎釜涓滆タ)</param>
-        public void CheckSecondarySecurity(string i_TouchText, string i_PasswordText, string i_GestureText, Action SuccessAction, Action NotSettionAction = null)
-        {
-            //鍏堟妸杩欎釜涓滆タ缃┖
-            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = null;
-
-            TouchIDUtils.TouchIDSupperType type = TouchIDUtils.getTouchIDSupperType();
-            if (type == TouchIDUtils.TouchIDSupperType.TouchID && UserCenterResourse.AccountOption.FingerprintAuthentication == true)
-            {
-                //Touch ID楠岃瘉
-                TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent += (sender2, e2) =>
-                {
-                    if (e2 == TouchIDUtils.TouchIDState.Success)
-                    {
-                        //TouchID楠岃瘉鎴愬姛
-                        SuccessAction?.Invoke();
-                        SuccessAction = null;
-                        TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = null;
-                    }
-                    else if (e2 == TouchIDUtils.TouchIDState.InputPassword)
-                    {
-                        //瀵嗙爜楠岃瘉
-                        if (string.IsNullOrEmpty(UserCenterResourse.AccountOption.PswAuthentication) == false)
-                        {
-                            var form = new PswSecondarySecurityForm();
-                            form.AddForm(i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
-                        }
-                        //鎵嬪娍楠岃瘉
-                        else if (string.IsNullOrEmpty(UserCenterResourse.AccountOption.GestureAuthentication) == false)
-                        {
-                            var form = new PswGestureSecirityForm();
-                            form.AddForm(i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
-                        }
-                        else
-                        {
-                            //娌℃湁璁剧疆瀵嗙爜楠岃瘉
-                            var alert = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uPasswordAuthenticationNotSettion));
-                            alert.Show();
-                        }
-                    }
-                };
-                TouchIDUtils.Instance.showTouchIDWithDescribe(null, null);
-                NotSettionAction = null;
-            }
-            else if (string.IsNullOrEmpty(UserCenterResourse.AccountOption.PswAuthentication) == false)
-            {
-                //瀵嗙爜楠岃瘉
-                var form = new PswSecondarySecurityForm();
-                form.AddForm(i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
-                NotSettionAction = null;
-            }
-            else if (string.IsNullOrEmpty(UserCenterResourse.AccountOption.GestureAuthentication) == false)
-            {
-                //鎵嬪娍楠岃瘉
-                var form = new PswGestureSecirityForm();
-                form.AddForm(i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
-                NotSettionAction = null;
-            }
-            else
-            {
-                //瀹屽叏娌℃湁璁剧疆鏈変换浣曢獙璇佹柟寮�
-                SuccessAction = null;
-                NotSettionAction?.Invoke();
-                NotSettionAction = null;
-            }
-        }
-
-        #endregion
-    }
-}
+锘縰sing Shared.Common;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Text.RegularExpressions;
+
+namespace Shared.Phone
+{
+    public class HdlCheckLogic
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 涓汉涓績鐨勬娴嬮�昏緫
+        /// </summary>
+        private static HdlCheckLogic m_Current = null;
+        /// <summary>
+        /// 涓汉涓績鐨勬娴嬮�昏緫
+        /// </summary>
+        public static HdlCheckLogic Current
+        {
+            get
+            {
+                if (m_Current == null)
+                {
+                    m_Current = new HdlCheckLogic();
+                }
+                return m_Current;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鍚勭姝g‘妫�娴媉______________________
+
+        /// <summary>
+        /// 鍒ゆ柇鏄惁鍖呭惈澶у啓瀛楁瘝
+        /// </summary>
+        /// <returns><c>true</c>, if contain upper was checked, <c>false</c> otherwise.</returns>
+        /// <param name="value">Value.</param>
+        public bool CheckContainUpper(string value)
+        {
+            Regex reg = new Regex("[A-Z]+");
+            return reg.IsMatch(value);
+        }
+
+        /// <summary>
+        /// 鍒ゆ柇鏄惁鍖呭惈灏忓啓瀛楁瘝
+        /// </summary>
+        /// <returns><c>true</c>, if contain lower was checked, <c>false</c> otherwise.</returns>
+        /// <param name="value">Value.</param>
+        public bool CheckContainLower(string value)
+        {
+            Regex reg = new Regex("[a-z]+");
+            return reg.IsMatch(value);
+        }
+
+        /// <summary>
+        /// 鍒ゆ柇鏄惁鍖呭惈鏁板瓧
+        /// </summary>
+        /// <returns><c>true</c>, if contain lower was checked, <c>false</c> otherwise.</returns>
+        /// <param name="value">Value.</param>
+        public bool CheckContainNum(string value)
+        {
+            Regex reg = new Regex("[0-9]+");
+            return reg.IsMatch(value);
+        }
+
+        /// <summary>
+        /// 鍒ゆ柇鏄惁鍖呭惈绗﹀彿
+        /// </summary>
+        /// <returns><c>true</c>, if contain lower was checked, <c>false</c> otherwise.</returns>
+        /// <param name="value">Value.</param>
+        public bool CheckContainSymbol(string value)
+        {
+            Regex reg = new Regex("([^a-z0-9A-Z])+");
+            return reg.IsMatch(value);
+        }
+
+        /// <summary>
+        /// 妫�娴嬮偖绠辨槸鍚﹀悎娉�
+        /// </summary>
+        /// <param name="email"></param>
+        /// <returns></returns>
+        public bool CheckEmail(string email)
+        {
+            string emailRegexStr = "^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$";
+            Regex reg = new Regex(emailRegexStr);
+            return reg.IsMatch(email);
+        }
+
+        /// <summary>
+        /// 妫�娴嬫墜鏈哄彿鏄惁鍚堟硶
+        /// </summary>
+        /// <param name="phoneNumber">鎵嬫満鍙�</param>
+        /// <param name="areaCode">鍦板尯浠g爜</param>
+        /// <returns></returns>
+        public bool CheckPhoneNumber(string phoneNumber, string areaCode)
+        {
+            //鏍¢獙澶栧浗鎵嬫満鍙�
+            if (areaCode != "86")
+            {
+                Regex reg = new Regex("^[0-9]*$");
+                return reg.IsMatch(phoneNumber);
+            }
+
+            //鏍¢獙鍥藉唴鎵嬫満鍙�
+            if (phoneNumber.Length > 11)
+            {
+                return false;
+            }
+            else if (phoneNumber.Length == 11)
+            {
+                Regex reg = new Regex("^[1][0-9]{10}$");
+                return reg.IsMatch(phoneNumber);
+            }
+            else
+            {
+                //姝e垯琛ㄨ揪寮忓垽鏂槸鍚︽暟瀛�
+                Regex reg = new Regex("^[0-9]*$");
+                return reg.IsMatch(phoneNumber);
+            }
+        }
+
+        /// <summary>
+        /// 妫�娴嬪瓧绗︿覆鏄惁鏄函鏁板瓧
+        /// </summary>
+        /// <param name="i_text"></param>
+        /// <returns></returns>
+        public bool CheckIsNumber(string i_text)
+        {
+            foreach (var c in i_text)
+            {
+                if (char.IsNumber(c) == false)
+                {
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        /// <summary>
+        /// 妫�鏌ュ瘑鐮侀暱搴﹀悎娉曟��
+        /// </summary>
+        /// <param name="password"></param>
+        /// <returns></returns>
+        public bool CheckPwdLength(string password)
+        {
+            if (password.Trim().Length >= 6 && password.Trim().Length <= 13)
+            {
+                return true;
+            }
+            return false;
+        }
+
+        #endregion
+
+        #region 鈻� 妫�娴嬬綉鍏抽敊璇姸鎬佺爜_________________
+
+        /// <summary>
+        /// <para>妫�娴嬬綉鍏宠繑鍥炵殑鍏遍�氶敊璇姸鎬佺爜(杩斿洖null鍒欎唬琛ㄦ病鏈夐敊璇�),鏀寔鐘舵�佺爜涓�</para>
+        /// <para>1锛氱綉鍏虫棤娉曡В鏋愬懡浠ゆ暟鎹��</para> 
+        /// <para>2锛氬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁</para> 
+        /// <para>3锛氭搷浣滆澶�/缁�/鍦烘櫙涓嶅瓨鍦�</para> 
+        /// <para>4锛氬叾浠栭敊璇�</para> 
+        /// <para>5锛氭暟鎹紶杈撻敊璇紙鍦ㄦ煇娆″鎴风鍚戠綉鍏冲彂閫佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級</para> 
+        /// </summary>
+        /// <param name="resultData">缃戝叧杩斿洖鐨剅esultData,閲岄潰鏈夈�恊rrorResponData銆戣繖涓笢瑗跨殑閭g瀵硅薄</param>
+        /// <returns></returns>
+        public string CheckGatewayErrorCode(object resultData)
+        {
+            if (resultData == null)
+            {
+                return null;
+            }
+            Type myType = resultData.GetType();
+            object errorObj = myType.InvokeMember("errorResponData", System.Reflection.BindingFlags.GetField, null, resultData, null);
+            if (errorObj == null)
+            {
+                return null;
+            }
+            Type type = errorObj.GetType();
+            var code = type.InvokeMember("Error", System.Reflection.BindingFlags.GetField, null, errorObj, null);
+            int errorCode = Convert.ToInt32(code);
+
+            return CheckGatewayErrorCode(errorCode);
+        }
+
+        /// <summary>
+        /// <para>妫�娴嬬綉鍏宠繑鍥炵殑鍏遍�氶敊璇姸鎬佺爜(杩斿洖null鍒欎唬琛ㄦ病鏈夐敊璇�),鏀寔鐘舵�佺爜涓�</para>
+        /// <para>1锛氱綉鍏虫棤娉曡В鏋愬懡浠ゆ暟鎹��</para> 
+        /// <para>2锛氬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁</para> 
+        /// <para>3锛氭搷浣滆澶�/缁�/鍦烘櫙涓嶅瓨鍦�</para> 
+        /// <para>4锛氬叾浠栭敊璇�</para> 
+        /// <para>5锛氭暟鎹紶杈撻敊璇紙鍦ㄦ煇娆″鎴风鍚戠綉鍏冲彂閫佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級</para> 
+        /// </summary>
+        /// <param name="errorCode">閿欒浠g爜</param>
+        /// <returns></returns>
+        public string CheckGatewayErrorCode(int errorCode)
+        {
+            if (errorCode == 1)
+            {
+                //缃戝叧鏃犳硶瑙f瀽鍛戒护鏁版嵁
+                return Language.StringByID(R.MyInternationalizationString.uGatewayCannotResolveCommand);
+            }
+            else if (errorCode == 2)
+            {
+                //鍗忚皟鍣ㄦ鍦ㄥ崌绾ф垨澶囦唤鎴栨仮澶嶆暟鎹腑
+                return Language.StringByID(R.MyInternationalizationString.uCoordinatorIsUpOrBackupOrRecovering);
+            }
+            else if (errorCode == 3)
+            {
+                //鐩爣璁惧涓嶅瓨鍦�
+                return Language.StringByID(R.MyInternationalizationString.uTargetDeviceIsNotExsit);
+            }
+            else if (errorCode == 4)
+            {
+                //鍑虹幇鏈煡閿欒,璇风◢鍚庡啀璇�
+                return Language.StringByID(R.MyInternationalizationString.uUnKnowErrorAndResetAgain);
+            }
+            else if (errorCode == 5)
+            {
+                //鏁版嵁浼犺緭閿欒,璇风◢鍚庡啀璇�
+                return Language.StringByID(R.MyInternationalizationString.uDataTransmissionFailAndResetAgain);
+            }
+            return null;
+        }
+
+        #endregion
+
+        #region 鈻� 妫�娴嬫帴鍙h繑鍥炵殑鐘舵�佺爜_______________
+
+        /// <summary>
+        /// 妫�娴嬫帴鍙h繑鍥炵殑鐘舵�佺爜
+        /// </summary>
+        /// <param name="i_response">浜戠杩斿洖鐨勪笢瑗�</param>
+        /// <param name="i_mode">鏄惁鏄剧ず璁块棶鎺ュ彛澶辫触鐨則ip娑堟伅</param>
+        /// <returns></returns>
+        public bool CheckNetCode(ResponsePack i_response, ShowNetCodeMode i_mode)
+        {
+            //涓轰簡鑺傜渷浠g爜,杩欐牱鏁磋�屽凡
+            if (i_response == null)
+            {
+                //缃戝叧杩炴帴澶辫触,璇风‘璁ょ綉缁�
+                HdlMessageLogic.Current.ShowNotNetTipMsg(i_mode);
+                return false;
+            }
+            if (i_response.Code != HttpMessageEnum.A鎴愬姛)
+            {
+                HdlMessageLogic.Current.ShowNetCodeTipMsg(i_mode, i_response);
+                return false;
+            }
+            return true;
+        }
+
+        #endregion
+
+        #region 鈻� 妫�娴嬭处鍙锋槸鍚﹀凡缁忛��鍑篲______________
+
+        /// <summary>
+        /// 妫�娴嬭处鍙锋槸鍚﹀凡缁忛��鍑� true:宸茬粡閫�鍑� false:娌℃湁閫�鍑�
+        /// </summary>
+        /// <returns></returns>
+        public bool IsAccountLoginOut()
+        {
+            return Config.Instance.HomeId == string.Empty;
+        }
+
+        #endregion
+
+        #region 鈻� 浜屾瀹夊叏楠岃瘉_______________________
+
+        /// <summary>
+        /// 鎵ц浜屾瀹夊叏楠岃瘉(涓夌楠岃瘉鐨勬爣棰樹娇鐢ㄩ粯璁ゅ�硷細Touch ID楠岃瘉,瀵嗙爜楠岃瘉,鎵嬪娍楠岃瘉)
+        /// </summary>
+        /// <param name="SuccessAction">濡傛灉璁剧疆鏈夐獙璇佹柟寮�,骞朵笖楠岃瘉鎴愬姛鍚庢墠浼氳皟鐢ㄧ殑鍥炶皟鍑芥暟,涓嶇劧涓嶄細璋冪敤杩欎釜涓滆タ</param>
+        /// <param name="NotSettionAction">濡傛灉瀹屽叏娌℃湁璁剧疆鏈夐獙璇佹柟寮�,鎵嶄細璋冪敤鐨勫洖璋冨嚱鏁�,涓嶇劧涓嶄細璋冪敤杩欎釜涓滆タ(鍙栨秷杈撳叆涓嶄細璋冪敤杩欎釜涓滆タ)</param>
+        public void CheckSecondarySecurity(Action SuccessAction, Action NotSettionAction = null)
+        {
+            CheckSecondarySecurity(
+                Language.StringByID(R.MyInternationalizationString.uTouchIDCheck),
+                Language.StringByID(R.MyInternationalizationString.uPasswordAuthentication),
+                Language.StringByID(R.MyInternationalizationString.uGestureAuthentication),
+                SuccessAction, NotSettionAction);
+        }
+
+        /// <summary>
+        /// 鎵ц浜屾瀹夊叏楠岃瘉
+        /// </summary>
+        /// <param name="i_TouchText">Touch ID楠岃瘉鐨勬樉绀烘枃鏈�</param>
+        /// <param name="i_PasswordText">瀵嗙爜楠岃瘉鐨勬樉绀烘枃鏈�</param>
+        /// <param name="i_GestureText">鎵嬪娍楠岃瘉鐨勬樉绀烘枃鏈�</param>
+        /// <param name="SuccessAction">濡傛灉璁剧疆鏈夐獙璇佹柟寮�,骞朵笖楠岃瘉鎴愬姛鍚庢墠浼氳皟鐢ㄧ殑鍥炶皟鍑芥暟,涓嶇劧涓嶄細璋冪敤杩欎釜涓滆タ</param>
+        /// <param name="NotSettionAction">濡傛灉瀹屽叏娌℃湁璁剧疆鏈夐獙璇佹柟寮�,鎵嶄細璋冪敤鐨勫洖璋冨嚱鏁�,涓嶇劧涓嶄細璋冪敤杩欎釜涓滆タ(鍙栨秷杈撳叆涓嶄細璋冪敤杩欎釜涓滆タ)</param>
+        public void CheckSecondarySecurity(string i_TouchText, string i_PasswordText, string i_GestureText, Action SuccessAction, Action NotSettionAction = null)
+        {
+            //鍏堟妸杩欎釜涓滆タ缃┖
+            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = null;
+
+            TouchIDUtils.TouchIDSupperType type = TouchIDUtils.getTouchIDSupperType();
+            if (type == TouchIDUtils.TouchIDSupperType.TouchID && HdlUserCenterResourse.AccountOption.FingerprintAuthentication == true)
+            {
+                //Touch ID楠岃瘉
+                TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent += (sender2, e2) =>
+                {
+                    if (e2 == TouchIDUtils.TouchIDState.Success)
+                    {
+                        //TouchID楠岃瘉鎴愬姛
+                        SuccessAction?.Invoke();
+                        SuccessAction = null;
+                        TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = null;
+                    }
+                    else if (e2 == TouchIDUtils.TouchIDState.InputPassword)
+                    {
+                        //瀵嗙爜楠岃瘉
+                        if (string.IsNullOrEmpty(HdlUserCenterResourse.AccountOption.PswAuthentication) == false)
+                        {
+                            var form = new PswSecondarySecurityForm();
+                            form.AddForm(i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
+                        }
+                        //鎵嬪娍楠岃瘉
+                        else if (string.IsNullOrEmpty(HdlUserCenterResourse.AccountOption.GestureAuthentication) == false)
+                        {
+                            var form = new PswGestureSecirityForm();
+                            form.AddForm(i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
+                        }
+                        else
+                        {
+                            //娌℃湁璁剧疆瀵嗙爜楠岃瘉
+                            var alert = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uPasswordAuthenticationNotSettion));
+                            alert.Show();
+                        }
+                    }
+                };
+                TouchIDUtils.Instance.showTouchIDWithDescribe(null, null);
+                NotSettionAction = null;
+            }
+            else if (string.IsNullOrEmpty(HdlUserCenterResourse.AccountOption.PswAuthentication) == false)
+            {
+                //瀵嗙爜楠岃瘉
+                var form = new PswSecondarySecurityForm();
+                form.AddForm(i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
+                NotSettionAction = null;
+            }
+            else if (string.IsNullOrEmpty(HdlUserCenterResourse.AccountOption.GestureAuthentication) == false)
+            {
+                //鎵嬪娍楠岃瘉
+                var form = new PswGestureSecirityForm();
+                form.AddForm(i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
+                NotSettionAction = null;
+            }
+            else
+            {
+                //瀹屽叏娌℃湁璁剧疆鏈変换浣曢獙璇佹柟寮�
+                SuccessAction = null;
+                NotSettionAction?.Invoke();
+                NotSettionAction = null;
+            }
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0