using System.Collections.Generic; using System.Web.Mvc; using System.Web.Routing; using Autofac.Integration.Web; using Orchard.Blogs.Routing; using Orchard.Mvc.Routes; namespace Orchard.Blogs { public class Routes : IRouteProvider { private readonly IContainerProvider _containerProvider; public Routes(IContainerProvider containerProvider) { _containerProvider = containerProvider; } public void GetRoutes(ICollection routes) { foreach (var routeDescriptor in GetRoutes()) routes.Add(routeDescriptor); } public IEnumerable GetRoutes() { return new[] { new RouteDescriptor { Route = new Route( "Admin/Blogs/Create", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogAdmin"}, {"action", "Create"} }, new RouteValueDictionary(), new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "Admin/Blogs/{blogSlug}/Edit", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogAdmin"}, {"action", "Edit"} }, new RouteValueDictionary { {"blogSlug", new IsBlogConstraint(_containerProvider)} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "Admin/Blogs/{blogSlug}/Delete", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogAdmin"}, {"action", "Delete"} }, new RouteValueDictionary { {"blogSlug", new IsBlogConstraint(_containerProvider)} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "Admin/Blogs/{blogSlug}", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogAdmin"}, {"action", "Item"} }, new RouteValueDictionary { {"blogSlug", new IsBlogConstraint(_containerProvider)} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "Admin/Blogs/{blogSlug}/Posts/Create", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogPostAdmin"}, {"action", "Create"} }, new RouteValueDictionary { {"blogSlug", new IsBlogConstraint(_containerProvider)} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "Admin/Blogs/{blogSlug}/Posts/{postId}/Edit", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogPostAdmin"}, {"action", "Edit"} }, new RouteValueDictionary { {"blogSlug", new IsBlogConstraint(_containerProvider)} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "Admin/Blogs/{blogSlug}/Posts/{postId}/Delete", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogPostAdmin"}, {"action", "Delete"} }, new RouteValueDictionary { {"blogSlug", new IsBlogConstraint(_containerProvider)} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "Admin/Blogs/{blogSlug}/Posts/{postId}/Publish", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogPostAdmin"}, {"action", "Publish"} }, new RouteValueDictionary { {"blogSlug", new IsBlogConstraint(_containerProvider)} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "Admin/Blogs", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogAdmin"}, {"action", "List"} }, new RouteValueDictionary(), new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "Blogs", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "Blog"}, {"action", "List"} }, new RouteValueDictionary(), new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "{blogSlug}/Archive/{*archiveData}", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogPost"}, {"action", "ListByArchive"} }, new RouteValueDictionary { {"blogSlug", new IsBlogConstraint(_containerProvider)}, {"archiveData", new IsArchiveConstraint()} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "{blogSlug}/wlwmanifest.xml", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "Blog"}, {"action", "LiveWriterManifest"} }, new RouteValueDictionary { {"blogSlug", new IsBlogConstraint(_containerProvider)} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "{blogSlug}/rsd", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "Blog"}, {"action", "Rsd"} }, new RouteValueDictionary { {"blogSlug", new IsBlogConstraint(_containerProvider)} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "{blogSlug}/{postSlug}", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogPost"}, {"action", "Item"} }, new RouteValueDictionary { {"blogSlug", new IsBlogConstraint(_containerProvider)} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "{blogSlug}", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "Blog"}, {"action", "Item"} }, new RouteValueDictionary { {"blogSlug", new IsBlogConstraint(_containerProvider)} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) } }; } } }