Exemplo n.º 1
0
        public static Task <ValidationResult> ValidateUpdateAsync <T>(
            this IValidator validator,
            T instance,
            T existingRecordInstance)
        {
            var ruleSet  = RuleSetConstants.Update;
            var selector = new RulesetValidatorSelector(ruleSet.Split(',', ';'));

            if (typeof(T) == instance.GetType())
            {
                return(validator.ValidateAsync(
                           new ScimValidationContext <T>(instance, existingRecordInstance, new PropertyChain(), selector)));
            }

            // we are dealing with a polymorphic type
            var resourceType      = instance.GetType();
            var validationContext = (ValidationContext)Activator.CreateInstance(
                typeof(ScimValidationContext <>).MakeGenericType(resourceType),
                instance,
                existingRecordInstance,
                new PropertyChain(),
                selector);

            return(validator.ValidateAsync(validationContext));
        }
Exemplo n.º 2
0
        private ValidationContext <T> CreateContextForRulesToAplyOnValidate(T instance, PropertyChain propertychain = null)
        {
            var selector = new RulesetValidatorSelector(RulesToAplyOnValidate.ToArray());
            var context  = new ValidationContext <T>(instance, new PropertyChain(), selector);

            return(context);
        }
        public static ValidationResult Validate <T>(this IValidator <T> validator, T instance, IList <string> rules)
        {
            var selector = new RulesetValidatorSelector(rules.ToArray());
            var context  = new ValidationContext <T>(instance, new PropertyChain(), selector);

            return(validator.Validate(context));
        }
 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));
 }
 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));
         }
     }));
 }
        /// <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();
            });
        }
Exemplo n.º 7
0
        public void Validate(T instance, params string[] ruleSetsToExecute)
        {
            var ruleSetValidatorSelector = new RulesetValidatorSelector(ruleSetsToExecute);
            var validationContext        = new ValidationContext <T>(instance, null, ruleSetValidatorSelector);

            var validationResult = Validate(validationContext);

            HandleValidationFailure(validationResult, instance);
        }
Exemplo n.º 8
0
        public void AssertValid <T>(T instance, params string[] ruleSetsToExecute)
        {
            var ruleSetValidatorSelector = new RulesetValidatorSelector(ruleSetsToExecute);
            var validationContext        = new ValidationContext <T>(instance, null, ruleSetValidatorSelector);

            var validator        = _validatorAbstractFactory.Resolve <T>();
            var validationResult = validator.Validate(validationContext);

            HandleValidationFailure(validationResult, instance);
        }
        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();
            });
        }
Exemplo n.º 11
0
        public static void MyValidate <T>(this IValidator <T> validator, T instance, params string[] rules)
        {
            var selector = new RulesetValidatorSelector(rules);

            var context          = new ValidationContext <T> (instance, new PropertyChain(), selector);
            var validationResult = validator.Validate(context);

            if (!validationResult.IsValid)
            {
                throw new ValidationException(validationResult.Errors);
            }
        }
        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));
                }
            }));
        }
		/// <summary>
		/// Builds a validator selector from the options specified in the attribute's properties.
		/// </summary>
		public IValidatorSelector ToValidatorSelector() {
			IValidatorSelector selector;

			if(! string.IsNullOrEmpty(RuleSet)) {
				var rulesets = RuleSet.Split(',', ';');
				selector = new RulesetValidatorSelector(rulesets);
			}
			else if(! string.IsNullOrEmpty(Properties)) {
				var properties = Properties.Split(',', ';');
				selector = new MemberNameValidatorSelector(properties);
			}
			else {
				selector = new DefaultValidatorSelector();
			}

			return selector;

		}
Exemplo n.º 15
0
        /// <summary>
        /// Builds a validator selector from the options specified in the attribute's properties.
        /// </summary>
        public IValidatorSelector ToValidatorSelector()
        {
            IValidatorSelector selector;

            if (!string.IsNullOrEmpty(RuleSet))
            {
                var rulesets = RuleSet.Split(',', ';');
                selector = new RulesetValidatorSelector(rulesets);
            }
            else if (!string.IsNullOrEmpty(Properties))
            {
                var properties = Properties.Split(',', ';');
                selector = new MemberNameValidatorSelector(properties);
            }
            else
            {
                selector = new DefaultValidatorSelector();
            }

            return(selector);
        }
Exemplo n.º 16
0
        public static ValidationResult Validate <T>(this IValidator <T> validator, T instance, IValidatorSelector selector = null, string ruleSet = null)
        {
            if (selector != null && ruleSet != null)
            {
                throw new InvalidOperationException("Cannot specify both an IValidatorSelector and a RuleSet.");
            }

            if (selector == null)
            {
                selector = new DefaultValidatorSelector();
            }

            if (ruleSet != null)
            {
                selector = new RulesetValidatorSelector(ruleSet);
            }

            var context = new ValidationContext <T>(instance, new PropertyChain(), selector);

            return(validator.Validate(context));
        }