/// <inheritdoc/>
        public async Task <IQueryableValidationResult <TValidated> > ValidateAsync(TValidated validatedObject, ValidationOptions options = null, CancellationToken cancellationToken = default)
        {
            var result = await wrapped.ValidateAsync(validatedObject, options, cancellationToken).ConfigureAwait(false);

            ThrowForUnsuccessfulValidationIfApplicable(result, optionsResolver.GetResolvedValidationOptions(options));

            return(result);
        }
Example #2
0
        /// <inheritdoc/>
        public async Task <IQueryableValidationResult <TValidated> > ValidateAsync(TValidated validatedObject, ValidationOptions options = null, CancellationToken cancellationToken = default)
        {
            var resolvedOptions = optionsResolver.GetResolvedValidationOptions(options);
            var rules           = ruleFactory.GetRulesWithDependencies(manifest.RootValue, validatedObject, resolvedOptions);
            var executor        = await executorFactory.GetRuleExecutorAsync(resolvedOptions, cancellationToken).ConfigureAwait(false);

            var context     = contextFactory.GetExecutionContext(rules, resolvedOptions);
            var ruleResults = await executor.ExecuteAllRulesAsync(context, cancellationToken).ConfigureAwait(false);

            return(new ValidationResult <TValidated>(ruleResults, manifest));
        }