public IInputFormatter GetInputFormatter(InputFormatterProviderContext context)
        {
            var request = context.HttpContext.Request;

            var formatters = _formatters;

            if (formatters == null)
            {
                formatters = context.HttpContext.RequestServices.GetService<IEnumerable<IInputFormatter>>()
                                    .ToArray();

                _formatters = formatters;
            }

            var contentType = request.GetContentType();
            if (contentType == null)
            {
                // TODO: http exception?
                throw new InvalidOperationException("400: Bad Request");
            }

            for (var i = 0; i < formatters.Length; i++)
            {
                var formatter = formatters[i];
                if (formatter.SupportedMediaTypes.Contains(contentType.ContentType, StringComparer.OrdinalIgnoreCase))
                {
                    return formatter;
                }
            }

            // TODO: Http exception
            throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, 
                                                              "415: Unsupported content type {0}", 
                                                              contentType));
        }
Exemple #2
0
        public IInputFormatter GetInputFormatter(InputFormatterProviderContext context)
        {
            var request = context.HttpContext.Request;

            var formatters = _formatters;

            if (formatters == null)
            {
                formatters = context.HttpContext.RequestServices.GetService <IEnumerable <IInputFormatter> >()
                             .ToArray();

                _formatters = formatters;
            }

            var contentType = request.GetContentType();

            if (contentType == null)
            {
                // TODO: http exception?
                throw new InvalidOperationException("400: Bad Request");
            }

            for (var i = 0; i < formatters.Length; i++)
            {
                var formatter = formatters[i];
                if (formatter.SupportedMediaTypes.Contains(contentType.ContentType, StringComparer.OrdinalIgnoreCase))
                {
                    return(formatter);
                }
            }

            // TODO: Http exception
            throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture,
                                                              "415: Unsupported content type {0}",
                                                              contentType));
        }