/// <summary> /// Implementors should perform any initialization logic /// </summary> /// <param name="validationRegistry"></param> /// <param name="property">The target property</param> public virtual void Initialize(IValidatorRegistry validationRegistry, PropertyInfo property) { this.property = property; this.validationRegistry = validationRegistry; errorMessage = BuildErrorMessage(); }
public CastleValidatorRulesProvider() { registry = new CachedValidationRegistry(); runner = new ValidatorRunner(registry); ruleEmitters.AddSingle<NonEmptyValidator>(x => new RequiredRule()); ruleEmitters.AddSingle<CreditCardValidator>(x => new DataTypeRule(DataTypeRule.DataType.CreditCardLuhn)); ruleEmitters.AddMultiple<DateTimeValidator>(x => new Rule[] { new RequiredRule(), new DataTypeRule(DataTypeRule.DataType.DateTime) }); ruleEmitters.AddMultiple<DateValidator>(x => new Rule[] { new RequiredRule(), new DataTypeRule(DataTypeRule.DataType.Date) }); ruleEmitters.AddMultiple<IntegerValidator>(x => new Rule[] { new RequiredRule(), new DataTypeRule(DataTypeRule.DataType.Integer) }); ruleEmitters.AddMultiple<IValidator>(x => { if ((x is DecimalValidator) || (x is DoubleValidator) || (x is SingleValidator)) { return new Rule[] { new RequiredRule(), new DataTypeRule(DataTypeRule.DataType.Decimal) }; } else return null; }); ruleEmitters.AddSingle<LengthValidator>(ConstructStringLengthRule); ruleEmitters.AddSingle<RangeValidator>(ConstructRangeRule); ruleEmitters.AddSingle<EmailValidator>(x => new DataTypeRule(DataTypeRule.DataType.EmailAddress)); ruleEmitters.AddSingle<RegularExpressionValidator>(x => new RegularExpressionRule(x.Expression, x.RegexRule.Options)); ruleEmitters.AddSingle<SameAsValidator>(x => new ComparisonRule(x.PropertyToCompare, ComparisonRule.Operator.Equals)); ruleEmitters.AddSingle<NotSameAsValidator>(x => new ComparisonRule(x.PropertyToCompare, ComparisonRule.Operator.DoesNotEqual)); }
public ScopeMockingValidatorProvider( IValidatorRegistry validatorRegistry, IServiceScope mockScope) : base(validatorRegistry) { _mockScope = mockScope; }
/// <errorSummary> /// Initializes the specified validation registry. /// </errorSummary> /// <param name="registry">The validation registry.</param> /// <param name="property">The property.</param> public override void Initialize(IValidatorRegistry registry, PropertyInfo property) { ParameterValidatorRegistryAdapter adapter = registry as ParameterValidatorRegistryAdapter; if (adapter == null) throw new ValidationInternalError("Expected IValidationRegistry of type ParameterValidatorRegistryAdapter."); validationRegistry = adapter; }
/// <errorSummary> /// Initializes the specified validation registry. /// </errorSummary> /// <param name="registry">The validation registry.</param> /// <param name="property">The property.</param> public override void Initialize(IValidatorRegistry registry, PropertyInfo property) { ParameterValidatorRegistryAdapter adapter = registry as ParameterValidatorRegistryAdapter; if (adapter == null) { throw new ValidationInternalError("Expected IValidationRegistry of type ParameterValidatorRegistryAdapter."); } validationRegistry = adapter; }
private static List <ValidatorDescriptor> DetermineValidatorsForArg( IValidatorRegistry validatorRegistry, ArgumentDefinition argDef) { // If validation is explicitly disabled, return none so validation middleware won't be added if (argDef.ContextData.ContainsKey(WellKnownContextData.DontValidate)) { return(new List <ValidatorDescriptor>(0)); } var validators = new List <ValidatorDescriptor>(); // Include implicit validator/s first (if allowed) if (!argDef.ContextData.ContainsKey(WellKnownContextData.DontValidateImplicitly)) { // And if we can figure out the arg's runtime type var argRuntimeType = TryGetArgRuntimeType(argDef); if (argRuntimeType is not null) { if (validatorRegistry.Cache.TryGetValue(argRuntimeType, out var implicitValidators) && implicitValidators is not null) { validators.AddRange(implicitValidators); } } } // Include explicit validator/s (that aren't already added implicitly) if (argDef.ContextData.TryGetValue(WellKnownContextData.ExplicitValidatorTypes, out var explicitValidatorTypesRaw) && explicitValidatorTypesRaw is IEnumerable <Type> explicitValidatorTypes) { // TODO: Potentially check and throw if there's a validator being explicitly applied for the wrong runtime type foreach (var validatorType in explicitValidatorTypes) { if (validators.Any(v => v.ValidatorType == validatorType)) { continue; } validators.Add(new ValidatorDescriptor(validatorType)); } } return(validators); }
/// <summary> /// Initializes a new instance of the <see cref="ValidatorRunner"/> class. /// </summary> /// <param name="inferValidators">If true, the runner will try to infer the validators based on data types</param> /// <param name="registry">The registry.</param> /// <param name="contributors">The contributors.</param> public ValidatorRunner(bool inferValidators, IValidatorRegistry registry, IValidationContributor[] contributors) { if (registry == null) { throw new ArgumentNullException("registry"); } this.inferValidators = inferValidators; validationPerformer = DefaultSettings.DefaultValidationPerformer; errorPerInstance = new Dictionary <object, ErrorSummary>(); this.registry = registry; this.contributors.AddRange(contributors); // resolve contributor dependencies if needed foreach (IValidationContributor contributor in this.contributors) { IHasValidationPerformerDependency hasPerformerDependency = (contributor as IHasValidationPerformerDependency); if (hasPerformerDependency != null) { hasPerformerDependency.ValidationPerformer = this.validationPerformer; } IHasValidatorRunnerDependency hasValidatorRunnerDependency = contributor as IHasValidatorRunnerDependency; if (hasValidatorRunnerDependency != null) { hasValidatorRunnerDependency.ValidatorRunner = this; } IHasValidatorRegistryDependency hasValidatorRegistryDependency = (contributor as IHasValidatorRegistryDependency); if (hasValidatorRegistryDependency != null) { hasValidatorRegistryDependency.ValidatorRegistry = registry; } } }
/// <summary> /// Initializes a new instance of the <see cref="MethodValidatorMetaStore"/> class. /// </summary> /// <param name="registry">The registry.</param> public MethodValidatorMetaStore(IValidatorRegistry registry) { this.registry = registry; }
/// <summary> /// Initializes a new instance of the <see cref="ValidatorRunner"/> class. /// </summary> /// <param name="registry">The registry.</param> public ValidatorRunner(IValidatorRegistry registry) : this(DefaultSettings.InferValidators, registry) { }
/// <summary> /// Initializes a new instance of the <see cref="ValidatorRunner"/> class. /// </summary> /// <param name="inferValidators">If true, the runner will try to infer the validators based on data types</param> /// <param name="registry">The registry.</param> public ValidatorRunner(bool inferValidators, IValidatorRegistry registry) : this(inferValidators, registry, DefaultSettings.DefaultContributors) { }
/// <summary> /// Initializes a new instance of the <see cref="ValidatorRunner"/> class. /// </summary> /// <param name="contributors">The contributors.</param> /// <param name="registry">The registry.</param> public ValidatorRunner(IValidationContributor[] contributors, IValidatorRegistry registry) : this(DefaultSettings.InferValidators, registry, contributors) { }
/// <summary> /// Implementors should perform any initialization logic /// </summary> /// <param name="validationRegistry">The validation registry.</param> /// <param name="property">The target property</param> public virtual void Initialize(IValidatorRegistry validationRegistry, PropertyInfo property) { propertyAccessor = validationRegistry.GetPropertyAccessor(property); }
/// <summary> /// Initializes a new instance of the <see cref="ValidatorRunner"/> class. /// </summary> /// <param name="inferValidators">If true, the runner will try to infer the validators based on data types</param> /// <param name="registry">The registry.</param> public ValidatorRunner(bool inferValidators, IValidatorRegistry registry) { if (registry == null) throw new ArgumentNullException("registry"); this.inferValidators = inferValidators; errorPerInstance = new Dictionary<object, ErrorSummary>(); this.registry = registry; }
/// <summary> /// Implementors should perform any initialization logic /// </summary> /// <param name="validationRegistry">The validation registry.</param> /// <param name="property">The target property</param> public void Initialize(IValidatorRegistry validationRegistry, PropertyInfo property) { this.validationRegistry = validationRegistry; properties[property] = FriendlyName ?? property.Name; }
/// <summary> /// Initializes a new instance of the <see cref="ParameterValidatorRegistryAdapter"/> class. /// </summary> /// <param name="validatorRegistry">The validator registry.</param> public ParameterValidatorRegistryAdapter(IValidatorRegistry validatorRegistry) { this.baseRegistry = validatorRegistry; }
/// <summary> /// Initializes a new instance of the <see cref="ValidatorRunner"/> class. /// </summary> /// <param name="registry">The registry.</param> public ValidatorRunner(IValidatorRegistry registry) : this(DefaultSettings.InferValidators, registry) {}
public AssertingScopageValidatorProvider(IValidatorRegistry validatorRegistry) : base(validatorRegistry) { }
/// <summary> /// Initializes a new instance of the <see cref="ValidatorRunner"/> class. /// </summary> /// <param name="inferValidators">If true, the runner will try to infer the validators based on data types</param> /// <param name="registry">The registry.</param> /// <param name="contributors">The contributors.</param> public ValidatorRunner(bool inferValidators, IValidatorRegistry registry, IValidationContributor[] contributors) { if (registry == null) throw new ArgumentNullException("registry"); this.inferValidators = inferValidators; validationPerformer = DefaultSettings.DefaultValidationPerformer; errorPerInstance = new Dictionary<object, ErrorSummary>(); this.registry = registry; this.contributors.AddRange(contributors); // resolve contributor dependencies if needed foreach(IValidationContributor contributor in this.contributors) { IHasValidationPerformerDependency hasPerformerDependency = (contributor as IHasValidationPerformerDependency); if (hasPerformerDependency != null) hasPerformerDependency.ValidationPerformer = this.validationPerformer; IHasValidatorRunnerDependency hasValidatorRunnerDependency = contributor as IHasValidatorRunnerDependency; if (hasValidatorRunnerDependency != null) hasValidatorRunnerDependency.ValidatorRunner = this; IHasValidatorRegistryDependency hasValidatorRegistryDependency = (contributor as IHasValidatorRegistryDependency); if (hasValidatorRegistryDependency != null) hasValidatorRegistryDependency.ValidatorRegistry = registry; } }
/// <summary> /// Initializes a new instance of the <see cref="ValidatorRunner"/> class. /// </summary> /// <param name="contributors">The contributors.</param> /// <param name="registry">The registry.</param> public ValidatorRunner(IValidationContributor[] contributors, IValidatorRegistry registry) : this(DefaultSettings.InferValidators, registry, contributors) {}
/// <summary> /// Initializes a new instance of the <see cref="ValidatorRunner"/> class. /// </summary> /// <param name="inferValidators">If true, the runner will try to infer the validators based on data types</param> /// <param name="registry">The registry.</param> public ValidatorRunner(bool inferValidators, IValidatorRegistry registry) : this(inferValidators, registry, DefaultSettings.DefaultContributors) {}
public CastleModelValidator(ModelMetadata metadata, ControllerContext controllerContext, IValidatorRegistry validatorRegistry, IValidator validator) : base(metadata, controllerContext) { Validator = validator; this.validatorRegistry = validatorRegistry; }
public UserRegistrationViewModel(IValidatorRegistry validatorFactory) { _validatorFactory = validatorFactory; RegisterCommand = new Command(RegisterValidation); }
/// <summary> /// Creates the default validator runner. /// </summary> /// <param name="validatorRegistry">The validator registry.</param> /// <returns></returns> /// <remarks> /// You can override this method to create a runner /// with some different configuration /// </remarks> protected virtual ValidatorRunner CreateValidatorRunner(IValidatorRegistry validatorRegistry) { return new ValidatorRunner(validatorRegistry); }
public DefaultValidatorProvider( IValidatorRegistry validatorRegistry) { ValidatorRegistry = validatorRegistry; }
/// <summary> /// Initializes a new instance of the <see cref="AbstractFormRelatedHelper"/> class. /// </summary> /// <param name="validatorRegistry">The validator registry.</param> /// <param name="validatorRunner">The validator runner.</param> protected AbstractFormRelatedHelper(IValidatorRegistry validatorRegistry, ValidatorRunner validatorRunner) { this.validatorRegistry = validatorRegistry; this.validatorRunner = validatorRunner; }
/// <summary> /// Implementors should perform any initialization logic /// </summary> /// <param name="validationRegistry">The validation registry.</param> /// <param name="property">The target property</param> public override void Initialize(IValidatorRegistry validationRegistry, PropertyInfo property) { base.Initialize(validationRegistry, property); referenceAccessor = validationRegistry.GetFieldOrPropertyAccessor(property.DeclaringType, propertyToCompare); }
/// <summary> /// Creates the default validator runner. /// </summary> /// <param name="validatorRegistry">The validator registry.</param> /// <returns></returns> /// <remarks> /// You can override this method to create a runner /// with some different configuration /// </remarks> protected virtual ValidatorRunner CreateValidatorRunner(IValidatorRegistry validatorRegistry) { if (validatorRegistry == null) { throw new ArgumentNullException("validatorRegistry"); } return new ValidatorRunner(validatorRegistry); }
public SampleOneViewModel(IValidatorRegistry validatorFactory) { _validatorFactory = validatorFactory; OkCommand = new Command(OnOkCommand); }