private static void MapRoute(HttpConfiguration httpConfiguration, IEdmModel edmModel, string routePrefix, HttpBatchHandler batchHandler) { // batch handler should be mapped first var routeTemplate = string.IsNullOrEmpty(routePrefix) ? ODataRouteConstants.Batch : routePrefix + '/' + ODataRouteConstants.Batch; httpConfiguration.Routes.MapHttpBatchRoute(routePrefix + "Batch", routeTemplate, batchHandler); var httpMessageHandler = HttpClientFactory.CreatePipeline(new HttpControllerDispatcher(httpConfiguration), new DelegatingHandler[0]); httpConfiguration.MapODataServiceRoute(routePrefix, routePrefix, edmModel, httpMessageHandler); }
public static HttpConfiguration MapODataServiceRoutes(this HttpConfiguration httpConfiguration, HttpBatchHandler batchHandler) { var edmModelBuilder = (IEdmModelBuilder)httpConfiguration.DependencyResolver.GetService(typeof(IEdmModelBuilder)); var edmModels = edmModelBuilder.Build(); foreach (var pair in edmModels) { var routePrefix = pair.Key.Segments.Last(); MapRoute(httpConfiguration, pair.Value, routePrefix, batchHandler); } return httpConfiguration; }
public static IHttpRoute MapHttpBatchRoute(this HttpRouteCollection routes, string routeName, string routeTemplate, HttpBatchHandler batchHandler) { return routes.MapHttpRoute(routeName, routeTemplate, defaults: null, constraints: null, handler: batchHandler); }
public static IHttpRoute MapODataServiceBatchRoute(this HttpRouteCollection routes, string routeName, string routeTemplate, HttpBatchHandler batchHandler) { return routes.MapODataServiceBatchRoute(routeName, routeTemplate, null, null, batchHandler); }