/// <summary> /// Creates instance of <see cref="FluentValidationOperationFilter"/>. /// </summary> /// <param name="swaggerGenOptions">Swagger generation options.</param> /// <param name="validatorFactory">FluentValidation factory.</param> /// <param name="rules">Custom rules. Is not set <see cref="FluentValidationRules.CreateDefaultRules"/> will be used.</param> /// <param name="loggerFactory">Logger factory.</param> public FluentValidationOperationFilter( IOptions <SwaggerGenOptions> swaggerGenOptions, [CanBeNull] IValidatorFactory validatorFactory = null, [CanBeNull] IEnumerable <FluentValidationRule> rules = null, [CanBeNull] ILoggerFactory loggerFactory = null) { _swaggerGenOptions = swaggerGenOptions.Value; _validatorFactory = validatorFactory; _logger = loggerFactory?.CreateLogger(typeof(FluentValidationRules)) ?? NullLogger.Instance; _rules = FluentValidationRules.CreateDefaultRules().OverrideRules(rules); }
public FluentValidationOperationFilter( [CanBeNull] IValidatorFactory validatorFactory = null, [CanBeNull] IEnumerable <FluentValidationRule> rules = null, [CanBeNull] ILoggerFactory loggerFactory = null) { _validatorFactory = validatorFactory; _logger = loggerFactory?.CreateLogger(typeof(FluentValidationRules)); _rules = FluentValidationRules.CreateDefaultRules(); if (rules != null) { var ruleMap = _rules.ToDictionary(rule => rule.Name, rule => rule); foreach (var rule in rules) { // Add or replace rule ruleMap[rule.Name] = rule; } _rules = ruleMap.Values.ToList(); } }