/// <summary> /// 执行验证操作 /// </summary> /// <param name="validators">验证器集合</param> /// <param name="throwError">是否抛出错误</param> public ValidateResults Validate(IEnumerable <IValidator> validators, bool throwError = true) { ValidateResults rs = new ValidateResults(); if (validators == null) { throw new ArgumentNullException("validators"); } foreach (var validator in validators) { rs.AddRange(validator.DoValidate(this, throwError)); } return(rs); }
public virtual ValidateResults DoValidate(object instance, bool throwError = true) { SetValidateRules(); var rs = this.Validate((TEntity)instance); ValidateResults newRs = new ValidateResults(); if (!rs.IsValid) { if (throwError) { throw new ValidationException(rs.Errors.First().ErrorMessage); } newRs.AddRange(rs.Errors.Select(item => new ValidateResult { Key = item.PropertyName, ErrorMessage = item.ErrorMessage })); } this.AddCustomerValidate(newRs); //钩子,自定义验证时重写该方法 IsValid = newRs.IsValid; return(newRs); }
/// <summary> /// 自定义验证 /// </summary> /// <param name="validateResults"></param> protected virtual void AddCustomerValidate(ValidateResults validateResults) { }
private static void ValidateStrings(IEnumerable<string> list, CharTypesAllowed allowed) { var results = new ValidateResults(allowed); foreach (var ch in list.SelectMany(str => str)) { results.AddChar(ch); } results.Validate(); }
private static void ValidateString(string str, CharTypesAllowed allowed) { var results = new ValidateResults(allowed); foreach (char ch in str) { results.AddChar(ch); } results.Validate(); }
private static void ValidateChars(IEnumerable<char> list, CharTypesAllowed allowed) { var results = new ValidateResults(allowed); foreach (var ch in list) { results.AddChar(ch); } results.Validate(); }