public virtual void Configure(IAppBuilder owinApp) { if (owinApp == null) { throw new ArgumentNullException(nameof(owinApp)); } _webApiConfig = new HttpConfiguration(); _webApiConfig.SuppressHostPrincipal(); _webApiConfig.IncludeErrorDetailPolicy = _activeAppEnvironment.DebugMode ? IncludeErrorDetailPolicy.LocalOnly : IncludeErrorDetailPolicy.Never; _webApiConfgurationCustomizers.ToList() .ForEach(webApiConfigurationCustomizer => { webApiConfigurationCustomizer.CustomizeWebApiConfiguration(_webApiConfig); }); _webApiConfig.DependencyResolver = _webApiDependencyResolver; _server = new HttpServer(_webApiConfig); _webApiConfig.MapHttpAttributeRoutes(); _webApiConfig.Routes.MapHttpRoute(name: "default", routeTemplate: "{controller}/{action}", defaults: new { action = RouteParameter.Optional }); owinApp.UseAutofacWebApi(_webApiConfig); _webApiOwinPipelineInjector.UseWebApiOData(owinApp, _server); _webApiConfig.EnsureInitialized(); }
public virtual void Configure(IAppBuilder owinApp) { if (owinApp == null) { throw new ArgumentNullException(nameof(owinApp)); } _webApiConfig = new HttpConfiguration(); _webApiConfig.SuppressHostPrincipal(); _globalActionFilterProviders.ToList() .ForEach(actionFilterProvider => { actionFilterProvider.ConfigureGlobalActionFilter(_webApiConfig); }); _webApiConfig.SetTimeZoneInfo(TimeZoneInfo.Utc); _webApiConfig.IncludeErrorDetailPolicy = _activeAppEnvironment.DebugMode ? IncludeErrorDetailPolicy.LocalOnly : IncludeErrorDetailPolicy.Never; _webApiConfig.DependencyResolver = _webApiDependencyResolver; HttpServer server = new HttpServer(_webApiConfig); _webApiConfig.MapHttpAttributeRoutes(); _webApiConfig.Routes.MapHttpRoute(name: "default", routeTemplate: "api/{controller}/{action}", defaults: new { action = RouteParameter.Optional }); _webApiConfig.MessageHandlers.Add(new ClientCorrelationHandler { Propagate = true, InitializeIfEmpty = true }); owinApp.UseAutofacWebApi(_webApiConfig); _webApiOwinPipelineInjector.UseWebApiOData(owinApp, server); _webApiConfig.EnsureInitialized(); }
public virtual void Configure(IAppBuilder owinApp) { if (owinApp == null) { throw new ArgumentNullException(nameof(owinApp)); } _webApiConfig = new HttpConfiguration(); _webApiConfig.SuppressHostPrincipal(); _webApiConfig.SetTimeZoneInfo(TimeZoneInfo.Utc); _webApiConfig.Formatters.Clear(); _webApiConfig.IncludeErrorDetailPolicy = _activeAppEnvironment.DebugMode ? IncludeErrorDetailPolicy.LocalOnly : IncludeErrorDetailPolicy.Never; _webApiConfgurationCustomizers.ToList() .ForEach(webApiConfigurationCustomizer => { webApiConfigurationCustomizer.CustomizeWebApiConfiguration(_webApiConfig); }); _webApiConfig.DependencyResolver = _webApiDependencyResolver; _server = new HttpServer(_webApiConfig); foreach (IGrouping <string, IEdmModelProvider> edmModelProviders in _emdEdmModelProviders.GroupBy(mp => mp.GetEdmName())) { ODataModelBuilder modelBuilder = _oDataModelBuilderProvider.GetODataModelBuilder(_webApiConfig, containerName: $"{edmModelProviders.Key}Context", @namespace: edmModelProviders.Key); foreach (IEdmModelProvider edmModelProvider in edmModelProviders) { edmModelProvider.BuildEdmModel(modelBuilder); } string routeName = $"{edmModelProviders.Key}-odata"; _odataBatchHandler = new DefaultODataBatchHandler(_server); _odataBatchHandler.MessageQuotas.MaxOperationsPerChangeset = int.MaxValue; _odataBatchHandler.MessageQuotas.MaxPartsPerBatch = int.MaxValue; _odataBatchHandler.MessageQuotas.MaxNestingDepth = int.MaxValue; _odataBatchHandler.MessageQuotas.MaxReceivedMessageSize = long.MaxValue; _odataBatchHandler.ODataRouteName = routeName; IEnumerable <IODataRoutingConvention> conventions = ODataRoutingConventions.CreateDefault(); IEdmModel edmModel = modelBuilder.GetEdmModel(); _webApiConfig.MapODataServiceRoute(routeName, edmModelProviders.Key, builder => { builder.AddService(ServiceLifetime.Singleton, sp => conventions); builder.AddService(ServiceLifetime.Singleton, sp => edmModel); builder.AddService(ServiceLifetime.Singleton, sp => _odataBatchHandler); builder.AddService(ServiceLifetime.Singleton, sp => _webApiDependencyResolver); _oDataContainerBuilderCustomizer.Customize(builder); }); } owinApp.UseAutofacWebApi(_webApiConfig); _webApiOwinPipelineInjector.UseWebApiOData(owinApp, _server); _webApiConfig.EnsureInitialized(); }