public static Route RegisterDefaultRoutes(this RouteCollection @this, string url, object defaults, string[] namespaces, Assembly resourceAssembly, string applicationDefaultNamespace) { Contract.Requires(@this != null); @this.RouteExistingFiles = true; var defaultRouteName = @default; var defaultScriptResourceRouteName = ResourceRouteHandler.GetDefaultResourceRouteName(ResourceRouteHandler.DefaultFolders.Scripts); var defaultContentResourceRouteName = ResourceRouteHandler.GetDefaultResourceRouteName(ResourceRouteHandler.DefaultFolders.Content); var constraints = ResourceRouteHandler.CreateControllerExcludeConstraintForDefaultFolders(); var defaultRoute = @this.MapRoute(defaultRouteName, url, defaults, constraints, namespaces); defaultRoute.DataTokens[ResourceRouteHandler.DataTokens.defaultScriptResourceRouteName] = defaultScriptResourceRouteName; defaultRoute.DataTokens[ResourceRouteHandler.DataTokens.defaultContentResourceRouteName] = defaultContentResourceRouteName; var areaRoutes = @this .OfType <Route>() .Where(r => r.IsAreaDefaultRoute()); foreach (var areaRoute in areaRoutes) { areaRoute.DataTokens[ResourceRouteHandler.DataTokens.defaultScriptResourceRouteName] = defaultScriptResourceRouteName; areaRoute.DataTokens[ResourceRouteHandler.DataTokens.defaultContentResourceRouteName] = defaultContentResourceRouteName; areaRoute.DataTokens[DefaultRouteConstants.defaultRouteName] = defaultRouteName; } ResourceRouteHandler.RegisterResourceRoute(@this.MapRoute, defaultScriptResourceRouteName, ResourceRouteHandler.DefaultFolders.Scripts, resourceAssembly, applicationDefaultNamespace); ResourceRouteHandler.RegisterResourceRoute(@this.MapRoute, defaultContentResourceRouteName, ResourceRouteHandler.DefaultFolders.Content, resourceAssembly, applicationDefaultNamespace); return(defaultRoute); }
public static Route RegisterResourceRoute(RegisterResourceRouteFactory routeFactory, string resourceRouteName, string resourceBaseUrl, string resourceFolder, Assembly resourceAssembly, string applicationDefaultNamespace) { Contract.Requires(routeFactory != null); var routeHandler = new ResourceRouteHandler(resourceAssembly, $"{applicationDefaultNamespace}.{resourceFolder}"); var url = GetUrl(resourceBaseUrl, resourceFolder); Route route = RegisterRoute(routeFactory, routeHandler, resourceRouteName, url); return(route); }