Exemplo n.º 1
0
 /// <summary>
 /// 设置证件号长度对应的校验规则
 /// </summary>
 /// <param name="noLength">校验实现对应的编号长度</param>
 /// <param name="validator">默认实现</param>
 public static void SetValidator(int noLength, IRegistrationNoValidator <RegistrationNoValidationResult> validator)
 {
     if (validator == null)
     {
         throw new ArgumentNullException(nameof(validator));
     }
     concurrentDictionary.AddOrUpdate(noLength, k => validator, (k, a) => validator);
 }
Exemplo n.º 2
0
        /// <summary>
        /// 验证工商注册号、统一社会信用代码是否正确
        /// </summary>
        /// <param name="code">工商注册号、统一社会信用代码</param>
        /// <param name="validLength">要验证的证件长度,默认不指定null</param>
        /// <param name="validLimit">验证区域级别,默认不指定null</param>
        /// <returns>验证结果</returns>
        public static RegistrationNoValidationResult Validate(this string code, int?validLength = null, AreaValidLimit?validLimit = null)
        {
            IRegistrationNoValidator <RegistrationNoValidationResult> validator = null;

            _ = ValidatorHelper.ValidEmpty(code, out RegistrationNoValidationResult result, ErrorMessage.Empty) &&
                ValidatorHelper.ValidLength(code, validLength, ErrorMessage.LengthOutOfRange, result) &&
                ValidImplement(code, result, out validator);
            return(validator == null ? result : validator.Validate(code, validLimit));
        }
Exemplo n.º 3
0
        /// <summary>
        /// 验证身份证是否正确
        /// </summary>
        /// <param name="code">工商注册号、统一社会信用代码</param>
        /// <param name="validLength">要验证的证件长度,默认不指定null</param>
        /// <param name="validLimit">验证区域级别,默认不指定null</param>
        /// <returns>验证结果</returns>
        public static RegistrationNoValidationResult Validate(this string code, RegistrationNoLength?validLength = null, AreaValidLimit?validLimit = null)
        {
            IRegistrationNoValidator <RegistrationNoValidationResult> validator = null;
            var valid = ValidatorHelper.ValidEmpty(code, out RegistrationNoValidationResult result, ErrorMessage.Empty) &&
                        ValidatorHelper.ValidLength(code, (int?)validLength, ErrorMessage.LengthOutOfRange, result) &&
                        ValidatorHelper.ValidImplement(code, result, "RegistrationNo{0}Validator", ErrorMessage.InvalidImplement, out validator, typeof(IRegistrationNoValidator <>));

            return(validator == null ? result : validator.Validate(code, validLimit));
        }
Exemplo n.º 4
0
 private static bool ValidImplement(string code, RegistrationNoValidationResult result, out IRegistrationNoValidator <RegistrationNoValidationResult> validator)
 {
     _ = concurrentDictionary.TryGetValue(code.Length, out validator) ||
         ValidatorHelper.ValidImplement(code, result, "RegistrationNo{0}Validator", ErrorMessage.InvalidImplement, out validator, typeof(IRegistrationNoValidator <>));
     return(validator != null);
 }