public static void AddFormatPlug(this HttpConfiguration config, IFormatPlug formatPlug, string queryStringParameterName = null)
        {
            if (formatPlug == null)
                throw new ArgumentNullException("formatPlug");

            if (_FormatPlugs.Count == 0)
            {
                config.SupportMediaTypeShortMapping(queryStringParameterName);

                _PseudoFormatter = new PseudoMediaTypeFormatter(config.Formatters.JsonFormatter);
                config.Formatters.Add(_PseudoFormatter);
            }
            else
                if (_FormatPlugs.Contains(formatPlug))
                    return;

            _FormatPlugs.Add(formatPlug);

            if (!_PseudoFormatter.SupportedMediaTypes.Contains(formatPlug.DefaultMediaType))
                _PseudoFormatter.SupportedMediaTypes.Add(formatPlug.DefaultMediaType);

            foreach (var mediaType in formatPlug.SupportedMediaTypes)
                if (!_PseudoFormatter.SupportedMediaTypes.Contains(mediaType))
                    _PseudoFormatter.SupportedMediaTypes.Add(mediaType);

            _PseudoFormatter.AddMediaTypeMapping(formatPlug.FormatShortName, formatPlug.DefaultMediaType, queryStringParameterName);
        }
Esempio n. 2
0
        public static void AddFormatPlug(this HttpConfiguration config, IFormatPlug formatPlug, string queryStringParameterName = null)
        {
            if (formatPlug == null)
            {
                throw new ArgumentNullException("formatPlug");
            }

            if (_FormatPlugs.Count == 0)
            {
                //	config.SupportMediaTypeShortMapping(queryStringParameterName);

                _PseudoFormatter = new PseudoMediaTypeFormatter(config.Formatters.JsonFormatter);
                config.Formatters.Add(_PseudoFormatter);
            }
            else
            if (_FormatPlugs.Contains(formatPlug))
            {
                return;
            }

            _FormatPlugs.Add(formatPlug);

            if (!_PseudoFormatter.SupportedMediaTypes.Contains(formatPlug.DefaultMediaType))
            {
                _PseudoFormatter.SupportedMediaTypes.Add(formatPlug.DefaultMediaType);
            }

            foreach (var mediaType in formatPlug.SupportedMediaTypes)
            {
                if (!_PseudoFormatter.SupportedMediaTypes.Contains(mediaType))
                {
                    _PseudoFormatter.SupportedMediaTypes.Add(mediaType);
                }
            }

            _PseudoFormatter.AddMediaTypeMapping(formatPlug.FormatShortName, formatPlug.DefaultMediaType, queryStringParameterName);
        }