public static void Decorate(this IEnumerable <IHttpRouteDecorator> routeDecorators, HttpRouteConfiguration routeConfiguration) { var context = new HttpRouteDecoratorContext(routeConfiguration); routeDecorators.ForEach(x => x.Decorate(context)); }
public static IEnumerable <IHttpRouteDecorator> ThatApplyTo( this IEnumerable <IHttpRouteDecorator> routeDecorators, ActionDescriptor actionDescriptor, HttpRouteConfiguration routeConfiguration, Configuration configuration, HttpConfiguration httpConfiguration) { return(configuration.HttpRouteDecorators .ThatAppliesTo(routeDecorators, new ActionConfigurationContext(configuration, httpConfiguration, actionDescriptor.Action, actionDescriptor.Route), new HttpRouteDecoratorContext(routeConfiguration))); }
public void Map(ActionDescriptor actionDescriptor) { var routeConfiguration = new HttpRouteConfiguration { Name = actionDescriptor.Route.Id, RouteTemplate = actionDescriptor.Route.Url.RemoveConstraints(), MessageHandler = _container.GetInstance <ActionMessageHandler>(actionDescriptor), Constraints = actionDescriptor.Route.GetRouteConstraints(_constraintResolver), MethodConstraints = new List <string> { actionDescriptor.Route.Method } }; _routeDecorators.ThatApplyTo(actionDescriptor, routeConfiguration, _configuration, _httpConfiguration).Decorate(routeConfiguration); _httpConfiguration.Routes.MapHttpRoute(routeConfiguration.Name, routeConfiguration.RouteTemplate, null, handler: routeConfiguration.MessageHandler, constraints: routeConfiguration.Constraints .AddMethodConstraints(routeConfiguration.MethodConstraints)); }
public HttpRouteDecoratorContext(HttpRouteConfiguration route) { Route = route; }