Esempio n. 1
0
        public ApiBehaviorApplicationModelProvider(
            IOptions <ApiBehaviorOptions> apiBehaviorOptions,
            IModelMetadataProvider modelMetadataProvider,
            IClientErrorFactory clientErrorFactory,
            ILoggerFactory loggerFactory)
        {
            _apiBehaviorOptions    = apiBehaviorOptions.Value;
            _modelMetadataProvider = modelMetadataProvider;
            _logger = loggerFactory.CreateLogger <ApiBehaviorApplicationModelProvider>();

            if (!_apiBehaviorOptions.SuppressModelStateInvalidFilter && _apiBehaviorOptions.InvalidModelStateResponseFactory == null)
            {
                throw new ArgumentException(Resources.FormatPropertyOfTypeCannotBeNull(
                                                typeof(ApiBehaviorOptions),
                                                nameof(ApiBehaviorOptions.InvalidModelStateResponseFactory)));
            }

            _modelStateInvalidFilter = new ModelStateInvalidFilter(
                apiBehaviorOptions.Value,
                loggerFactory.CreateLogger <ModelStateInvalidFilter>());

            _clientErrorResultFilter = new ClientErrorResultFilter(
                clientErrorFactory,
                loggerFactory.CreateLogger <ClientErrorResultFilter>());
        }
        /// <summary>
        /// Instantiates a new <see cref="WebHookFilterProvider"/> instance with the given
        /// <paramref name="behaviorOptions"/> and <paramref name="loggerFactory"/>.
        /// </summary>
        /// <param name="behaviorOptions">The <see cref="ApiBehaviorOptions"/> accessor.</param>
        /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param>
        public WebHookFilterProvider(IOptions <ApiBehaviorOptions> behaviorOptions, ILoggerFactory loggerFactory)
        {
            _behaviorOptions = behaviorOptions.Value;
            _loggerFactory   = loggerFactory;

            var logger = loggerFactory.CreateLogger <ModelStateInvalidFilter>();

            _modelStateInvalidFilter = new ModelStateInvalidFilter(_behaviorOptions, logger);
        }
Esempio n. 3
0
        public ApiBehaviorApplicationModelProvider(IOptions <ApiBehaviorOptions> apiBehaviorOptions, ILoggerFactory loggerFactory)
        {
            _apiBehaviorOptions = apiBehaviorOptions.Value;
            if (_apiBehaviorOptions.EnableModelStateInvalidFilter && _apiBehaviorOptions.InvalidModelStateResponseFactory == null)
            {
                throw new ArgumentException(Resources.FormatPropertyOfTypeCannotBeNull(
                                                typeof(ApiBehaviorOptions),
                                                nameof(ApiBehaviorOptions.InvalidModelStateResponseFactory)));
            }

            _modelStateInvalidFilter = new ModelStateInvalidFilter(
                apiBehaviorOptions.Value,
                loggerFactory.CreateLogger <ModelStateInvalidFilter>());
        }
Esempio n. 4
0
    public void OnActionExecuting_NoOpsIfModelStateIsValid()
    {
        // Arrange
        var options = new ApiBehaviorOptions
        {
            InvalidModelStateResponseFactory = _ => new BadRequestResult(),
        };
        var filter  = new ModelStateInvalidFilter(options, NullLogger.Instance);
        var context = GetActionExecutingContext();

        // Act
        filter.OnActionExecuting(context);

        // Assert
        Assert.Null(context.Result);
    }
Esempio n. 5
0
    public void OnActionExecuting_InvokesResponseFactoryIfModelStateIsInvalid()
    {
        // Arrange
        var expected = new BadRequestResult();
        var options  = new ApiBehaviorOptions
        {
            InvalidModelStateResponseFactory = _ => expected,
        };
        var filter  = new ModelStateInvalidFilter(options, NullLogger.Instance);
        var context = GetActionExecutingContext();

        context.ModelState.AddModelError("some-key", "some-error");

        // Act
        filter.OnActionExecuting(context);

        // Assert
        Assert.Same(expected, context.Result);
    }
Esempio n. 6
0
    public void OnActionExecuting_NoOpsIfResultIsAlreadySet()
    {
        // Arrange
        var options = new ApiBehaviorOptions
        {
            InvalidModelStateResponseFactory = _ => new BadRequestResult(),
        };
        var filter   = new ModelStateInvalidFilter(options, NullLogger.Instance);
        var context  = GetActionExecutingContext();
        var expected = new OkResult();

        context.Result = expected;

        // Act
        filter.OnActionExecuting(context);

        // Assert
        Assert.Same(expected, context.Result);
    }
Esempio n. 7
0
        /// <summary>
        /// Instantiates a new <see cref="WebHookActionModelFilterProvider"/> instance.
        /// </summary>
        /// <param name="behaviorOptions">The <see cref="ApiBehaviorOptions"/> accessor.</param>
        /// <param name="configuration">The <see cref="IConfiguration"/>.</param>
        /// <param name="hostingEnvironment">The <see cref="IHostingEnvironment" />.</param>
        /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param>
        /// <param name="metadataProvider">
        /// The <see cref="WebHookMetadataProvider"/> service. Searched for applicable metadata per-request.
        /// </param>
        /// <param name="requestReader">The <see cref="IWebHookRequestReader"/>.</param>
        /// <param name="verifyMethodFilter">The <see cref="WebHookVerifyMethodFilter"/> service.</param>
        public WebHookActionModelFilterProvider(
            IOptions <ApiBehaviorOptions> behaviorOptions,
            IConfiguration configuration,
            IHostingEnvironment hostingEnvironment,
            ILoggerFactory loggerFactory,
            WebHookMetadataProvider metadataProvider,
            IWebHookRequestReader requestReader,
            WebHookVerifyMethodFilter verifyMethodFilter)
        {
            _behaviorOptions    = behaviorOptions.Value;
            _configuration      = configuration;
            _hostingEnvironment = hostingEnvironment;
            _loggerFactory      = loggerFactory;
            _metadataProvider   = metadataProvider;
            _requestReader      = requestReader;
            _verifyMethodFilter = verifyMethodFilter;

            var logger = loggerFactory.CreateLogger <ModelStateInvalidFilter>();

            _modelStateInvalidFilter = new ModelStateInvalidFilter(_behaviorOptions, logger);
        }
 public GirvsModelStateInvalidFilter(IOptions <ApiBehaviorOptions> options,
                                     ILogger <GirvsModelStateInvalidFilter> logger)
 {
     _modelStateInvalidFilter =
         new ModelStateInvalidFilter(options.Value, logger);
 }