public static TestValidationResult <T> TestValidate <T>(this IValidator <T> validator, T objectToTest, string ruleSet) where T : class
 {
     return(validator.TestValidate(objectToTest, options => {
         if (ruleSet != null)
         {
             options.IncludeRuleSets(RulesetValidatorSelector.LegacyRulesetSplit(ruleSet));
         }
     }));
 }
 public static async Task <TestValidationResult <T> > TestValidateAsync <T>(this IValidator <T> validator, T objectToTest, CancellationToken cancellationToken, string ruleSet) where T : class
 {
     return(await validator.TestValidateAsync(objectToTest, options => {
         if (ruleSet != null)
         {
             options.IncludeRuleSets(RulesetValidatorSelector.LegacyRulesetSplit(ruleSet));
         }
     }, cancellationToken));
 }
        /// <summary>
        /// Performs validation and then throws an exception if validation fails.
        /// </summary>
        /// <param name="validator">The validator this method is extending.</param>
        /// <param name="instance">The instance of the type we are validating.</param>
        /// <param name="applyTo">The ruleset to validate against.</param>
        public static void ValidateAndThrow <T>(this IValidator <T> validator, T instance, ApplyTo applyTo)
        {
            var ruleSet = applyTo.ToString().ToUpper();

            validator.Validate(instance, options => {
                options.IncludeRuleSets(RulesetValidatorSelector.LegacyRulesetSplit(ruleSet));
                options.ThrowOnFailures();
            });
        }
        public static async Task ValidateAndThrowAsync <T>(this IValidator <T> validator, T instance, string ruleSet, CancellationToken cancellationToken = default)
        {
            await validator.ValidateAsync(instance, options => {
                if (ruleSet != null)
                {
                    options.IncludeRuleSets(RulesetValidatorSelector.LegacyRulesetSplit(ruleSet));
                }

                options.ThrowOnFailures();
            }, cancellationToken);
        }
        public static void ValidateAndThrow <T>(this IValidator <T> validator, T instance, string ruleSet)
        {
            validator.Validate(instance, options => {
                if (ruleSet != null)
                {
                    options.IncludeRuleSets(RulesetValidatorSelector.LegacyRulesetSplit(ruleSet));
                }

                options.ThrowOnFailures();
            });
        }
        public static Task <ValidationResult> ValidateAsync <T>(this IValidator <T> validator, T instance, CancellationToken cancellationToken = default, IValidatorSelector selector = null, string ruleSet = null)
        {
            return(validator.ValidateAsync(instance, options => {
                if (selector != null)
                {
                    options.UseCustomSelector(selector);
                }

                if (ruleSet != null)
                {
                    options.IncludeRuleSets(RulesetValidatorSelector.LegacyRulesetSplit(ruleSet));
                }
            }, cancellationToken));
        }
        public static ValidationResult Validate <T>(this IValidator <T> validator, T instance, IValidatorSelector selector = null, string ruleSet = null)
        {
            return(validator.Validate(instance, options => {
                if (selector != null)
                {
                    options.UseCustomSelector(selector);
                }

                if (ruleSet != null)
                {
                    options.IncludeRuleSets(RulesetValidatorSelector.LegacyRulesetSplit(ruleSet));
                }
            }));
        }