Ejemplo n.º 1
0
 public ClientErrorResultFilter(
     IClientErrorFactory clientErrorFactory,
     ILogger <ClientErrorResultFilter> logger)
 {
     _clientErrorFactory = clientErrorFactory ?? throw new ArgumentNullException(nameof(clientErrorFactory));
     _logger             = logger ?? throw new ArgumentNullException(nameof(logger));
 }
Ejemplo n.º 2
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>());
        }
Ejemplo n.º 3
0
 public ErrorFilterImpl(IClientErrorFactory clientErrorFactory, ILoggerFactory loggerFactory, bool handleMvcRequests, bool handleApiRequests, ErrorFilterOptions options)
 {
     _clientErrorFactory = clientErrorFactory ?? throw new ArgumentNullException(nameof(clientErrorFactory));
     _logger             = loggerFactory.CreateLogger <ErrorFilterAttribute>();
     _handleMvcRequests  = handleMvcRequests;
     _handleApiRequests  = handleApiRequests;
     _options            = options;
 }
Ejemplo n.º 4
0
        public ApiBehaviorApplicationModelProvider(
            IOptions <ApiBehaviorOptions> apiBehaviorOptions,
            IModelMetadataProvider modelMetadataProvider,
            IClientErrorFactory clientErrorFactory,
            ILoggerFactory loggerFactory)
        {
            var options = apiBehaviorOptions.Value;

            ActionModelConventions = new List <IActionModelConvention>()
            {
                new ApiVisibilityConvention(),
            };

            if (!options.SuppressMapClientErrors)
            {
                ActionModelConventions.Add(new ClientErrorResultFilterConvention());
            }

            if (!options.SuppressModelStateInvalidFilter)
            {
                ActionModelConventions.Add(new InvalidModelStateFilterConvention());
            }

            if (!options.SuppressConsumesConstraintForFormFileParameters)
            {
                ActionModelConventions.Add(new ConsumesConstraintForFormFileParameterConvention());
            }

            var defaultErrorType          = options.SuppressMapClientErrors ? typeof(void) : typeof(ProblemDetails);
            var defaultErrorTypeAttribute = new ProducesErrorResponseTypeAttribute(defaultErrorType);

            ActionModelConventions.Add(new ApiConventionApplicationModelConvention(defaultErrorTypeAttribute));

            if (!options.SuppressInferBindingSourcesForParameters)
            {
                var convention = new InferParameterBindingInfoConvention(modelMetadataProvider)
                {
                    AllowInferringBindingSourceForCollectionTypesAsFromQuery = options.AllowInferringBindingSourceForCollectionTypesAsFromQuery,
                };

                ActionModelConventions.Add(convention);
            }
        }
    public ApiBehaviorApplicationModelProvider(
        IOptions <ApiBehaviorOptions> apiBehaviorOptions,
        IModelMetadataProvider modelMetadataProvider,
        IClientErrorFactory clientErrorFactory,
        ILoggerFactory loggerFactory,
        IServiceProvider serviceProvider)
    {
        var options = apiBehaviorOptions.Value;

        ActionModelConventions = new List <IActionModelConvention>()
        {
            new ApiVisibilityConvention(),
        };

        if (!options.SuppressMapClientErrors)
        {
            ActionModelConventions.Add(new ClientErrorResultFilterConvention());
        }

        if (!options.SuppressModelStateInvalidFilter)
        {
            ActionModelConventions.Add(new InvalidModelStateFilterConvention());
        }

        if (!options.SuppressConsumesConstraintForFormFileParameters)
        {
            ActionModelConventions.Add(new ConsumesConstraintForFormFileParameterConvention());
        }

        var defaultErrorType          = options.SuppressMapClientErrors ? typeof(void) : typeof(ProblemDetails);
        var defaultErrorTypeAttribute = new ProducesErrorResponseTypeAttribute(defaultErrorType);

        ActionModelConventions.Add(new ApiConventionApplicationModelConvention(defaultErrorTypeAttribute));

        if (!options.SuppressInferBindingSourcesForParameters)
        {
            var serviceProviderIsService = serviceProvider.GetService <IServiceProviderIsService>();
            var convention = options.DisableImplicitFromServicesParameters || serviceProviderIsService is null ?
                             new InferParameterBindingInfoConvention(modelMetadataProvider) :
                             new InferParameterBindingInfoConvention(modelMetadataProvider, serviceProviderIsService);
            ActionModelConventions.Add(convention);
        }
    }