Esempio n. 1
0
        /// <summary>
        ///  Sets up serialization and deserialization of Json Api resources.
        /// </summary>
        /// <param name="config">The <see cref="HttpConfiguration"/> that is used in the setup of the application.</param>
        /// <param name="jsonApiConfiguration">JsonApiConfiguration parameters for Json Api serialization.</param>
        /// <param name="formatterPriority"> Determines the relative position of the JSON API formatter.</param>
        public static void ConfigureJsonApi(
            this HttpConfiguration config,
            JsonApiConfiguration jsonApiConfiguration,
            FormatterPriority formatterPriority)
        {
            JsonApiAttribute.JsonApiConfiguration = jsonApiConfiguration;

            config.MessageHandlers.Add(new PreprocessingDelegatingHandler(jsonApiConfiguration));

            config.Services.Add(typeof(ValueProviderFactory), new JsonApiQueryValueProviderFactory());

            var formatter = new JsonApiMediaTypeFormatter(jsonApiConfiguration);

            if (formatterPriority == FormatterPriority.OverwriteOtherFormatters)
            {
                config.Formatters.Clear();
                config.Formatters.Add(formatter);
            }
            else if (formatterPriority == FormatterPriority.AddFormatterToEnd)
            {
                config.Formatters.Add(formatter);
            }
            else if (formatterPriority == FormatterPriority.AddFormatterToStart)
            {
                config.Formatters.Insert(0, formatter);
            }
        }
Esempio n. 2
0
        /// <summary>
        ///  Sets up serialization and deserialization of Json Api resources.
        /// </summary>
        /// <param name="config">The <see cref="HttpConfiguration"/> that is used in the setup of the application.</param>
        /// <param name="jsonApiConfiguration">Configuration parameters for Json Api serialization.</param>
        /// <param name="formatterPriority"> Determines the relative position of the JSON API formatter.</param>
        public static void ConfigureJsonApi(
            this HttpConfiguration config,
            JsonApiConfiguration jsonApiConfiguration,
            FormatterPriority formatterPriority)
        {
            config.MessageHandlers.Add(new PreprocessingDelegatingHandler(jsonApiConfiguration));
            var formatter = new JsonApiMediaTypeFormatter(jsonApiConfiguration);

            if (formatterPriority == FormatterPriority.OverwriteOtherFormatters)
            {
                config.Formatters.Clear();
                config.Formatters.Add(formatter);
            }
            else if (formatterPriority == FormatterPriority.AddFormatterToEnd)
            {
                config.Formatters.Add(formatter);
            }
            else if (formatterPriority == FormatterPriority.AddFormatterToStart)
            {
                config.Formatters.Insert(0, formatter);
            }
        }