コード例 #1
0
            public void AddsTextHtmlToSupportedMediaTypes()
            {
                // Arrange
                var serializerSettings = new JsonSerializerSettings();

                // Act
                var formatter = new BrowserJsonFormatter(serializerSettings);

                // Assert
                Assert.Contains(new MediaTypeHeaderValue("text/html"), formatter.SupportedMediaTypes);
            }
コード例 #2
0
            public void SetsSerializerSettings()
            {
                // Arrange
                var serializerSettings = new JsonSerializerSettings();

                // Act
                var formatter = new BrowserJsonFormatter(serializerSettings);

                // Assert
                Assert.Same(serializerSettings, formatter.SerializerSettings);
            }
コード例 #3
0
            public void ReturnsBrowserJsonFormatter()
            {
                // Arrange
                var serializerSettings = new JsonSerializerSettings();

                // Act
                var formatter = new BrowserJsonFormatter(serializerSettings);

                // Assert
                Assert.IsAssignableFrom <BrowserJsonFormatter>(formatter);
            }
コード例 #4
0
ファイル: WebApiConfig.cs プロジェクト: ucn-bois/EventCave
        public static void Register(HttpConfiguration config)
        {
            var cors = new EnableCorsAttribute("*", "*", "*");

            config.EnableCors(cors);
            config.SuppressDefaultHostAuthentication();
            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

            config.MapHttpAttributeRoutes();
            var formatter = new BrowserJsonFormatter();

            formatter.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
            config.Formatters.Add(formatter);
        }
コード例 #5
0
            public void SetsContentTypeOnHeadersToApplicationJson()
            {
                // Arrange
                var serializerSettings = new JsonSerializerSettings();
                var formatter          = new BrowserJsonFormatter(serializerSettings);
                var type    = typeof(object);
                var content = new StringContent("");
                var headers = content.Headers;
                MediaTypeHeaderValue mediaType = null;

                // Act
                formatter.SetDefaultContentHeaders(type, headers, mediaType);

                // Assert
                Assert.Equal(new MediaTypeHeaderValue("application/json"), headers.ContentType);
            }
コード例 #6
0
ファイル: WebApiConfig.cs プロジェクト: dbarrera1984/Gateways
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );


            var jsonFormmatter = new BrowserJsonFormatter();

            // To avoid the error: "Self referencing loop detected - Getting back data from WebApi to the browser".
            jsonFormmatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
            config.Formatters.Add(jsonFormmatter);
        }
コード例 #7
0
        public void Register(HttpConfiguration config)
        {
            FrameworkEnvironment.Configure();
            var container = FrameworkEnvironment.Instance.Container;

            config.SuppressDefaultHostAuthentication();
            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

            var json = config.Formatters.JsonFormatter;

            json.UseDataContractJsonSerializer = false;

            if (json != null)
            {
                config.Formatters.Remove(json);
            }

            json = new BrowserJsonFormatter();
            config.Formatters.Insert(0, new JsonNewtonFormatter());
            config.Formatters.Insert(0, json);

            json = config.Formatters.JsonFormatter;

            // Web API routes
            config.MapHttpAttributeRoutes();

            MapRoutes(config);

            // Web API configuration and services
            RegisterDependencyContainer(config, container);

            config.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);

            //config.Filters.Add(new LoggingFilter(config));
            config.Filters.Add(new GlobalExceptionFilter(config));
            config.Filters.Add(new ValidateModelFilter());

            Container = container;
        }
コード例 #8
0
        /// <summary>Registers the specified configuration.</summary>
        /// <param name="config">The configuration.</param>
        /// <param name="unityContainer">The unity container.</param>
        /// <param name="unitOfWork">The unit of work.</param>
        public static void Register(HttpConfiguration config, IUnityContainer unityContainer, IUnitOfWork unitOfWork)
        {
            var applicationSettingRepository = unitOfWork.GetTypedRepository <IApplicationSettingRepository>();

            etagCacheServerDuration = applicationSettingRepository.GetOrCreateByName <int>("EtagCacheServerDuration");
            etagCacheClientDuration = applicationSettingRepository.GetOrCreateByName <int>("EtagCacheClientDuration");

#if !DEBUG
            // Configure Web API to use only bearer token authentication.
            // Only suppress if not in debug mode, this allows browsing the WebAPI if in debug mode.
            config.SuppressDefaultHostAuthentication();
#endif

            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
            config.Filters.Add(new ModelStateValidationFilter());
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new SelectSupportConverter());

            var browserFormatter = new BrowserJsonFormatter
            {
                SerializerSettings =
                {
                    ContractResolver = new CamelCasePropertyNamesContractResolver()
                }
            };

            browserFormatter.SerializerSettings.Converters.Add(new SelectSupportConverter());

            config.Formatters.Add(browserFormatter);

            config.DependencyResolver = new UnityDependencyResolver(unityContainer);

            // Changing this setting requires a website restart
            if (applicationSettingRepository.GetOrCreateByName <bool>("Caching_EnableEtags"))
            {
                var etagStore = new SqlServerEntityTagStore(ConfigurationManager.ConnectionStrings["InSite.Commerce"].ConnectionString);

                // The vary by in the constructor needs to be something that is unique per user so it generates ETags uniquely per user
                // Cookie contains a cookie we generate InsiteCacheId that is a guid per user.
                var cacheHandler = new CachingHandler(config, etagStore, "Cookie")
                {
                    // This must be false so IE client side caching works, anything that needs to vary needs to be done by uri or querystring
                    AddVaryHeader              = false,
                    AddLastModifiedHeader      = true,
                    RoutePatternProvider       = new CacheRoutePatternProvider(),
                    CacheControlHeaderProvider = CacheControlHeaderProvider,
                    CacheRefreshPolicyProvider = CacheRefreshPolicyProvider
                };
                config.MessageHandlers.Add(cacheHandler);
            }

            config.MessageHandlers.Add(new LocalizationHandler());
            config.MapHttpAttributeRoutes(new InheritanceDirectRouteProvider());

            // There can be multiple exception loggers. (By default, no exception loggers are registered.)
            config.Services.Add(typeof(IExceptionLogger), unityContainer.Resolve <IExceptionLogger>());

            // There must be exactly one exception handler. (There is a default one that may be replaced.)
            config.Services.Replace(typeof(IExceptionHandler), unityContainer.Resolve <IExceptionHandler>());
        }
コード例 #9
0
ファイル: WebApiConfig.cs プロジェクト: Barterdm04/Demo
        /// <summary>Registers the specified configuration.</summary>
        /// <param name="config">The configuration.</param>
        /// <param name="unityContainer">The unity container.</param>
        /// <param name="unitOfWork">The unit of work.</param>
        public static void Register(HttpConfiguration config, IUnityContainer unityContainer, IUnitOfWork unitOfWork)
        {
            var applicationSettingRepository = unitOfWork.GetTypedRepository<IApplicationSettingRepository>();

            etagCacheServerDuration = applicationSettingRepository.GetOrCreateByName<int>("EtagCacheServerDuration");
            etagCacheClientDuration = applicationSettingRepository.GetOrCreateByName<int>("EtagCacheClientDuration");

#if !DEBUG

    // Configure Web API to use only bearer token authentication.
    // Only suppress if not in debug mode, this allows browsing the WebAPI if in debug mode.
            config.SuppressDefaultHostAuthentication();
#endif

            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
            config.Filters.Add(new ModelStateValidationFilter());
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new SelectSupportConverter());

            var browserFormatter = new BrowserJsonFormatter
            {
                SerializerSettings =
                {
                    ContractResolver = new CamelCasePropertyNamesContractResolver()
                }
            };

            browserFormatter.SerializerSettings.Converters.Add(new SelectSupportConverter());

            config.Formatters.Add(browserFormatter);

            config.DependencyResolver = new UnityDependencyResolver(unityContainer);

            // Changing this setting requires a website restart
            if (applicationSettingRepository.GetOrCreateByName<bool>("Caching_EnableEtags"))
            {
                var etagStore = new SqlServerEntityTagStore(ConfigurationManager.ConnectionStrings["InSite.Commerce"].ConnectionString);

                // The vary by in the constructor needs to be something that is unique per user so it generates ETags uniquely per user
                // Cookie contains a cookie we generate InsiteCacheId that is a guid per user.
                var cacheHandler = new CachingHandler(config, etagStore, "Cookie")
                {
                    // This must be false so IE client side caching works, anything that needs to vary needs to be done by uri or querystring
                    AddVaryHeader = false,
                    AddLastModifiedHeader = true,
                    RoutePatternProvider = new CacheRoutePatternProvider(),
                    CacheControlHeaderProvider = CacheControlHeaderProvider,
                    CacheRefreshPolicyProvider = CacheRefreshPolicyProvider
                };
                config.MessageHandlers.Add(cacheHandler);
            }

            config.MessageHandlers.Add(new LocalizationHandler());
            config.MapHttpAttributeRoutes(new InheritanceDirectRouteProvider());

            // There can be multiple exception loggers. (By default, no exception loggers are registered.)
            config.Services.Add(typeof(IExceptionLogger), unityContainer.Resolve<IExceptionLogger>());

            // There must be exactly one exception handler. (There is a default one that may be replaced.)
            config.Services.Replace(typeof(IExceptionHandler), unityContainer.Resolve<IExceptionHandler>());
        }