Ejemplo n.º 1
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));
        }