using System.Collections.Generic; using System.Web.Mvc; using System.Web.Routing; using Orchard.Blogs.Routing; using Orchard.Mvc.Routes; namespace Orchard.Blogs { public class Routes : IRouteProvider { private readonly IBlogSlugConstraint _blogSlugConstraint; public Routes(IBlogSlugConstraint blogSlugConstraint) { _blogSlugConstraint = blogSlugConstraint; } 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", _blogSlugConstraint} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "Admin/Blogs/{blogSlug}/Remove", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogAdmin"}, {"action", "Remove"} }, new RouteValueDictionary { {"blogSlug", _blogSlugConstraint} }, 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", _blogSlugConstraint} }, 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", _blogSlugConstraint} }, 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", _blogSlugConstraint} }, 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", _blogSlugConstraint} }, 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", _blogSlugConstraint} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Route = new Route( "Admin/Blogs/{blogSlug}/Posts/{postId}/Unpublish", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogPostAdmin"}, {"action", "Unpublish"} }, new RouteValueDictionary { {"blogSlug", _blogSlugConstraint} }, 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", _blogSlugConstraint}, {"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", _blogSlugConstraint} }, 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", _blogSlugConstraint} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Priority = 11, Route = new Route( "{blogSlug}/{postSlug}", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "BlogPost"}, {"action", "Item"} }, new RouteValueDictionary { {"blogSlug", _blogSlugConstraint} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) }, new RouteDescriptor { Priority = 11, Route = new Route( "{blogSlug}", new RouteValueDictionary { {"area", "Orchard.Blogs"}, {"controller", "Blog"}, {"action", "Item"} }, new RouteValueDictionary { {"blogSlug", _blogSlugConstraint} }, new RouteValueDictionary { {"area", "Orchard.Blogs"} }, new MvcRouteHandler()) } }; } } }