/// <summary> /// Валидирует объект спинабором правил и генерирует исключение, /// если результат содержит ошибки /// </summary> /// <typeparam name="T">Тип объекта валидации</typeparam> /// <param name="validator">Валидатор</param> /// <param name="ruleSets">Коллекция наборов правил валидации</param> /// <param name="instance">Ссылка на объект валидации</param> /// <param name="context">Контекст валидации</param> public static Task ValidateManyAndThrowAsync <T>( this IValidatorAsync validator, IEnumerable <IValidationRuleSet <T> > ruleSets, T instance, ValidationContext context) { var result = validator.ValidateManyAsync(ruleSets, instance, context); return(ThrowIfIsNotValid(result)); }
public async Task <ValidationResult> ProcessAsync(T value, ValidationContext context) { var result = new ValidationResult(); IEnumerable <TEntity> enumerable; lock (_func) { enumerable = _func.Invoke(value); } foreach (var res in enumerable.Select(item => _validatorAsync.ValidateManyAsync(_contexts, item, context))) { var validateResult = await res; result.Results.AddRange(validateResult.Results); } return(result); }
/// <summary> /// Валидирует заданный объект несколькими наборами правил валидации /// </summary> /// <typeparam name="T">Тип объекта для валидации</typeparam> /// <param name="ruleSets">Коллекция наборов правил валидации</param> /// <param name="instance">Ссылка на объект валидации</param> /// <param name="context">Контекст валидации</param> /// <returns>Результат валидации</returns> public static Task <ValidationResult> ValidateManyAsync <T>( IEnumerable <IValidationRuleSet <T> > ruleSets, T instance, ValidationContext context = null) { return(validator.ValidateManyAsync(ruleSets, instance, context)); }