public static void AddFluentValidationHtmlConventions(this IServiceCollection serviceCollection, Action <FluentValidationOptions> options = null)
        {
            var fluentValidationOptions = new FluentValidationOptions();

            options?.Invoke(fluentValidationOptions);

            serviceCollection.AddSingleton <IValidatorFinder>(x => new FluentValidatorFinder(y => (IValidator)x.GetService(y)));
            serviceCollection.AddSingleton(new ServiceDescriptor(typeof(FluentValidationOptions), fluentValidationOptions));
        }
Exemplo n.º 2
0
        public static void AddFluentValidationHtmlConventions(this IServiceCollection serviceCollection, Action <FluentValidationOptions> options = null)
        {
            var fluentValidationOptions = new FluentValidationOptions();

            options?.Invoke(fluentValidationOptions);

            serviceCollection.TryAddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            serviceCollection.AddSingleton <IValidatorFinder>(x => new FluentValidatorFinder(y => (IValidator)x.GetRequiredService <IHttpContextAccessor>().HttpContext.RequestServices.GetService(y)));
            serviceCollection.AddSingleton(new ServiceDescriptor(typeof(FluentValidationOptions), fluentValidationOptions));
        }
Exemplo n.º 3
0
        public FluentValidationHtmlConventions(IValidatorFinder validatorFinder, FluentValidationOptions fluentValidationOptions)
        {
            _ruleProviders.Add(AddLengthClasses);
            _ruleProviders.Add(AddRequiredClass);
            _ruleProviders.Add(AddCreditCardClass);
            _ruleProviders.Add(AddEqualToDataAttr);
            _ruleProviders.Add(AddRegexData);
            _ruleProviders.Add(AddEmailData);

            _ruleProviders.AddRange(fluentValidationOptions.RuleProviders);

            Inputs.Always.Modify((h, r) =>
            {
                var propertyValidators = validatorFinder.FindValidators(r);
                foreach (var ruleProvider in _ruleProviders)
                {
                    ruleProvider.Invoke(propertyValidators, h, r);
                }
            });
        }