From 18b2c0176822e584f64f23c64132e1b2d0e47f58 Mon Sep 17 00:00:00 2001 From: Lombiq Date: Mon, 6 Feb 2017 19:03:56 +0100 Subject: [PATCH] Remove long obsoleted IRouteProvider.GetRoutes(), see #3177 --- .../Environment/DefaultOrchardShellTests.cs | 6 +-- src/Orchard.Web/Core/Common/Routes.cs | 18 +++---- src/Orchard.Web/Core/Dashboard/Routes.cs | 37 ++++++-------- src/Orchard.Web/Core/Feeds/Rss/Routes.cs | 42 +++++++--------- src/Orchard.Web/Core/Reports/Routes.cs | 37 ++++++-------- src/Orchard.Web/Core/Settings/Routes.cs | 18 +++---- .../Modules/Orchard.Alias/Routes.cs | 20 ++++---- .../Modules/Orchard.Blogs/Routes.cs | 10 ++-- .../Modules/Orchard.Dashboards/Routes.cs | 50 +++++++++---------- .../Modules/Orchard.Layouts/Routes.cs | 10 ++-- .../Modules/Orchard.Lists/Routes.cs | 12 ++--- .../Modules/Orchard.MultiTenancy/Routes.cs | 16 ++---- .../Modules/Orchard.OpenId/Routes/OpenId.cs | 14 +++--- .../Controllers/AdminController.cs | 3 +- .../Modules/Orchard.Recipes/Routes.cs | 16 +++--- .../Modules/Orchard.Search/Routes.cs | 10 ++-- .../Modules/Orchard.Setup/Routes.cs | 13 ++--- .../Modules/Orchard.Tags/Routes.cs | 15 ++---- .../Environment/DefaultOrchardShell.cs | 8 ++- .../Mvc/Routes/DefaultRouteProvider.cs | 37 ++++++-------- src/Orchard/Mvc/Routes/IRouteProvider.cs | 5 -- .../Routes/StandardExtensionRouteProvider.cs | 19 +++---- .../WebApi/Routes/IHttpRouteProvider.cs | 1 - .../StandardExtensionHttpRouteProvider.cs | 12 ++--- 24 files changed, 174 insertions(+), 255 deletions(-) diff --git a/src/Orchard.Tests/Environment/DefaultOrchardShellTests.cs b/src/Orchard.Tests/Environment/DefaultOrchardShellTests.cs index ac9aad7b4..0e2c37708 100644 --- a/src/Orchard.Tests/Environment/DefaultOrchardShellTests.cs +++ b/src/Orchard.Tests/Environment/DefaultOrchardShellTests.cs @@ -51,12 +51,8 @@ namespace Orchard.Tests.Environment { _routes = routes; } - public IEnumerable GetRoutes() { - return _routes; - } - public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) + foreach (var routeDescriptor in _routes) routes.Add(routeDescriptor); } } diff --git a/src/Orchard.Web/Core/Common/Routes.cs b/src/Orchard.Web/Core/Common/Routes.cs index 808eeb481..145063766 100644 --- a/src/Orchard.Web/Core/Common/Routes.cs +++ b/src/Orchard.Web/Core/Common/Routes.cs @@ -7,15 +7,9 @@ using Orchard.Mvc.Routes; namespace Orchard.Core.Common { public class Routes : IRouteProvider { public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) - routes.Add(routeDescriptor); - } - - public IEnumerable GetRoutes() { - return new[] { - new RouteDescriptor { - Priority = -9999, - Route = new Route( + var routeDescriptor = new RouteDescriptor { + Priority = -9999, + Route = new Route( "{*path}", new RouteValueDictionary { {"area", "Common"}, @@ -28,9 +22,9 @@ namespace Orchard.Core.Common { {"area", "Common"} }, new MvcRouteHandler()) - } }; - } - } + routes.Add(routeDescriptor); + } + } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Dashboard/Routes.cs b/src/Orchard.Web/Core/Dashboard/Routes.cs index d08739c32..0f5653fd8 100644 --- a/src/Orchard.Web/Core/Dashboard/Routes.cs +++ b/src/Orchard.Web/Core/Dashboard/Routes.cs @@ -6,28 +6,23 @@ using Orchard.Mvc.Routes; namespace Orchard.Core.Dashboard { public class Routes : IRouteProvider { public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) - routes.Add(routeDescriptor); - } + var routeDescriptor = new RouteDescriptor { + Priority = -5, + Route = new Route( + "Admin", + new RouteValueDictionary { + {"area", "Dashboard"}, + {"controller", "admin"}, + {"action", "index"} + }, + new RouteValueDictionary(), + new RouteValueDictionary { + {"area", "Dashboard"} + }, + new MvcRouteHandler()) + }; - public IEnumerable GetRoutes() { - return new[] { - new RouteDescriptor { - Priority = -5, - Route = new Route( - "Admin", - new RouteValueDictionary { - {"area", "Dashboard"}, - {"controller", "admin"}, - {"action", "index"} - }, - new RouteValueDictionary(), - new RouteValueDictionary { - {"area", "Dashboard"} - }, - new MvcRouteHandler()) - } - }; + routes.Add(routeDescriptor); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Feeds/Rss/Routes.cs b/src/Orchard.Web/Core/Feeds/Rss/Routes.cs index 0235181ba..5d6bd1d8c 100644 --- a/src/Orchard.Web/Core/Feeds/Rss/Routes.cs +++ b/src/Orchard.Web/Core/Feeds/Rss/Routes.cs @@ -5,31 +5,25 @@ using Orchard.Mvc.Routes; namespace Orchard.Core.Feeds.Rss { public class Routes : IRouteProvider { - public IEnumerable GetRoutes() { - return new[] { - new RouteDescriptor { - Priority = -5, - Route = new Route( - "rss", - new RouteValueDictionary { - {"area", "Feeds"}, - {"controller", "Feed"}, - {"action", "Index"}, - {"format", "rss"}, - }, - new RouteValueDictionary(), - new RouteValueDictionary { - {"area", "Feeds"} - }, - new MvcRouteHandler()) - } - }; - } - public void GetRoutes(ICollection routes) { - foreach (RouteDescriptor routeDescriptor in GetRoutes()) { - routes.Add(routeDescriptor); - } + var routeDescriptor = new RouteDescriptor { + Priority = -5, + Route = new Route( + "rss", + new RouteValueDictionary { + {"area", "Feeds"}, + {"controller", "Feed"}, + {"action", "Index"}, + {"format", "rss"}, + }, + new RouteValueDictionary(), + new RouteValueDictionary { + {"area", "Feeds"} + }, + new MvcRouteHandler()) + }; + + routes.Add(routeDescriptor); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Reports/Routes.cs b/src/Orchard.Web/Core/Reports/Routes.cs index 4f28dc0ad..beaf18bbe 100644 --- a/src/Orchard.Web/Core/Reports/Routes.cs +++ b/src/Orchard.Web/Core/Reports/Routes.cs @@ -6,28 +6,23 @@ using Orchard.Mvc.Routes; namespace Orchard.Core.Reports { public class Routes : IRouteProvider { public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) - routes.Add(routeDescriptor); - } + var routeDescriptor = new RouteDescriptor { + Priority = -5, + Route = new Route( + "Admin/Reports", + new RouteValueDictionary { + {"area", "Reports"}, + {"controller", "Admin"}, + {"action", "Index"} + }, + new RouteValueDictionary(), + new RouteValueDictionary { + {"area", "Reports"} + }, + new MvcRouteHandler()) + }; - public IEnumerable GetRoutes() { - return new[] { - new RouteDescriptor { - Priority = -5, - Route = new Route( - "Admin/Reports", - new RouteValueDictionary { - {"area", "Reports"}, - {"controller", "Admin"}, - {"action", "Index"} - }, - new RouteValueDictionary(), - new RouteValueDictionary { - {"area", "Reports"} - }, - new MvcRouteHandler()) - } - }; + routes.Add(routeDescriptor); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Settings/Routes.cs b/src/Orchard.Web/Core/Settings/Routes.cs index e4b69aa86..f9db2718e 100644 --- a/src/Orchard.Web/Core/Settings/Routes.cs +++ b/src/Orchard.Web/Core/Settings/Routes.cs @@ -9,14 +9,8 @@ using Orchard.Mvc.Routes; namespace Orchard.Core.Settings { public class Routes : IRouteProvider { public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) - routes.Add(routeDescriptor); - } - - public IEnumerable GetRoutes() { - return new[] { - new RouteDescriptor { - Route = new Route( + var routeDescriptor = new RouteDescriptor { + Route = new Route( "Admin/Settings/{groupInfoId}", new RouteValueDictionary { {"area", "Settings"}, @@ -31,11 +25,11 @@ namespace Orchard.Core.Settings { {"groupInfoId", ""} }, new MvcRouteHandler()) - } }; - } - } + routes.Add(routeDescriptor); + } + } public class SettingsActionConstraint : IRouteConstraint { public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) { @@ -44,7 +38,7 @@ namespace Orchard.Core.Settings { if (!values.ContainsKey(parameterName)) return false; - + // just hard-coding to know action name strings for now var potentialActionName = values[parameterName] as string; return !string.IsNullOrWhiteSpace(potentialActionName) diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Routes.cs b/src/Orchard.Web/Modules/Orchard.Alias/Routes.cs index ce935e87d..7bc74a228 100644 --- a/src/Orchard.Web/Modules/Orchard.Alias/Routes.cs +++ b/src/Orchard.Web/Modules/Orchard.Alias/Routes.cs @@ -17,21 +17,19 @@ namespace Orchard.Alias { } public void GetRoutes(ICollection routes) { - foreach (RouteDescriptor routeDescriptor in GetRoutes()) { - routes.Add(routeDescriptor); - } - } - - public IEnumerable GetRoutes() { var distinctAreaNames = _blueprint.Controllers .Select(controllerBlueprint => controllerBlueprint.AreaName) .Distinct(); - return distinctAreaNames.Select(areaName => - new RouteDescriptor { - Priority = 80, - Route = new AliasRoute(_aliasHolder, areaName, new MvcRouteHandler()) - }).ToList(); + var routeDescriptors = distinctAreaNames.Select(areaName => + new RouteDescriptor { + Priority = 80, + Route = new AliasRoute(_aliasHolder, areaName, new MvcRouteHandler()) + }).ToList(); + + foreach (var routeDescriptor in routeDescriptors) { + routes.Add(routeDescriptor); + } } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Routes.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Routes.cs index 20219695e..0fedcfeb1 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Routes.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Routes.cs @@ -17,12 +17,7 @@ namespace Orchard.Blogs { } public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) - routes.Add(routeDescriptor); - } - - public IEnumerable GetRoutes() { - return new[] { + var routeDescriptors = new[] { new RouteDescriptor { Route = new Route( "Admin/Blogs/Create", @@ -211,6 +206,9 @@ namespace Orchard.Blogs { new MvcRouteHandler()) } }; + + foreach (var routeDescriptor in routeDescriptors) + routes.Add(routeDescriptor); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Dashboards/Routes.cs b/src/Orchard.Web/Modules/Orchard.Dashboards/Routes.cs index e370ddc61..d9219bb71 100644 --- a/src/Orchard.Web/Modules/Orchard.Dashboards/Routes.cs +++ b/src/Orchard.Web/Modules/Orchard.Dashboards/Routes.cs @@ -6,29 +6,25 @@ using Orchard.Mvc.Routes; namespace Orchard.Dashboards { public class Routes : IRouteProvider { public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) - routes.Add(routeDescriptor); - } + var routeDescriptors = new[] { + new RouteDescriptor { + Priority = -4, + Route = new Route( + "Admin", + new RouteValueDictionary { + {"area", "Orchard.Dashboards"}, + {"controller", "Dashboard"}, + {"action", "Display"} + }, + new RouteValueDictionary(), + new RouteValueDictionary { + {"area", "Orchard.Dashboards"} + }, + new MvcRouteHandler()) + }, - public IEnumerable GetRoutes() { - yield return new RouteDescriptor { - Priority = -4, - Route = new Route( - "Admin", - new RouteValueDictionary { - {"area", "Orchard.Dashboards"}, - {"controller", "Dashboard"}, - {"action", "Display"} - }, - new RouteValueDictionary(), - new RouteValueDictionary { - {"area", "Orchard.Dashboards"} - }, - new MvcRouteHandler()) - }; - - yield return new RouteDescriptor { - Route = new Route( + new RouteDescriptor { + Route = new Route( "Admin/Dashboards/Settings", new RouteValueDictionary { {"area", "Orchard.Dashboards"}, @@ -40,10 +36,10 @@ namespace Orchard.Dashboards { {"area", "Orchard.Dashboards"} }, new MvcRouteHandler()) - }; + }, - yield return new RouteDescriptor { - Route = new Route( + new RouteDescriptor { + Route = new Route( "Admin/Dashboards/List", new RouteValueDictionary { {"area", "Orchard.Dashboards"}, @@ -55,7 +51,11 @@ namespace Orchard.Dashboards { {"area", "Orchard.Dashboards"} }, new MvcRouteHandler()) + } }; + + foreach (var routeDescriptor in routeDescriptors) + routes.Add(routeDescriptor); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Routes.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Routes.cs index 4f71042fb..9d6e7934d 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Routes.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Routes.cs @@ -6,13 +6,7 @@ using Orchard.Mvc.Routes; namespace Orchard.Layouts { public class Routes : IRouteProvider { public void GetRoutes(ICollection routes) { - foreach (var route in GetRoutes()) { - routes.Add(route); - } - } - - public IEnumerable GetRoutes() { - yield return new RouteDescriptor { + var routeDescriptor = new RouteDescriptor { Route = new Route( "Admin/Layouts/{controller}/{action}/{id}", new RouteValueDictionary { @@ -25,6 +19,8 @@ namespace Orchard.Layouts { }, new MvcRouteHandler()) }; + + routes.Add(routeDescriptor); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Lists/Routes.cs b/src/Orchard.Web/Modules/Orchard.Lists/Routes.cs index d9afc73e3..f6109bd7b 100644 --- a/src/Orchard.Web/Modules/Orchard.Lists/Routes.cs +++ b/src/Orchard.Web/Modules/Orchard.Lists/Routes.cs @@ -6,13 +6,7 @@ using Orchard.Mvc.Routes; namespace Orchard.Lists { public class Routes : IRouteProvider { public void GetRoutes(ICollection routes) { - foreach (RouteDescriptor routeDescriptor in GetRoutes()) { - routes.Add(routeDescriptor); - } - } - - public IEnumerable GetRoutes() { - return new[] { + var routeDescriptors = new[] { new RouteDescriptor { Priority = 5, Route = new Route( @@ -90,6 +84,10 @@ namespace Orchard.Lists { new MvcRouteHandler()) }, }; + + foreach (var routeDescriptor in routeDescriptors) { + routes.Add(routeDescriptor); + } } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Routes.cs b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Routes.cs index abdc9975f..04508d995 100644 --- a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Routes.cs +++ b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Routes.cs @@ -5,10 +5,9 @@ using Orchard.Mvc.Routes; namespace Orchard.MultiTenancy { public class Routes : IRouteProvider { - public IEnumerable GetRoutes() { - return new[] { - new RouteDescriptor { - Route = new Route( + public void GetRoutes(ICollection routes) { + var routeDescriptor = new RouteDescriptor { + Route = new Route( "Admin/MultiTenancy/Edit/{name}", new RouteValueDictionary { {"area", "Orchard.MultiTenancy"}, @@ -22,14 +21,9 @@ namespace Orchard.MultiTenancy { {"area", "Orchard.MultiTenancy"} }, new MvcRouteHandler()) - } - }; - } + }; - public void GetRoutes(ICollection routes) { - foreach (RouteDescriptor routeDescriptor in GetRoutes()) { - routes.Add(routeDescriptor); - } + routes.Add(routeDescriptor); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.OpenId/Routes/OpenId.cs b/src/Orchard.Web/Modules/Orchard.OpenId/Routes/OpenId.cs index 4623ef48c..ed6d6cf3d 100644 --- a/src/Orchard.Web/Modules/Orchard.OpenId/Routes/OpenId.cs +++ b/src/Orchard.Web/Modules/Orchard.OpenId/Routes/OpenId.cs @@ -14,16 +14,10 @@ namespace Orchard.Azure.Authentication { } public void GetRoutes(ICollection routes) { - foreach (var route in GetRoutes()) { - routes.Add(route); - } - } - - public IEnumerable GetRoutes() { if (IsAnyProviderSettingsValid() == false) - return Enumerable.Empty(); + return; - return new[] { + var routeDescriptors = new[] { new RouteDescriptor { Priority = 11, Route = new Route( @@ -74,6 +68,10 @@ namespace Orchard.Azure.Authentication { new MvcRouteHandler()) } }; + + foreach (var routeDescriptor in routeDescriptors) { + routes.Add(routeDescriptor); + } } private bool IsAnyProviderSettingsValid() { diff --git a/src/Orchard.Web/Modules/Orchard.OutputCache/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.OutputCache/Controllers/AdminController.cs index 027e42caf..2355f38aa 100644 --- a/src/Orchard.Web/Modules/Orchard.OutputCache/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.OutputCache/Controllers/AdminController.cs @@ -47,7 +47,8 @@ namespace Orchard.OutputCache.Controllers { // Right now, ignore generic routes. if (routeProvider.Value is StandardExtensionRouteProvider) continue; - var routes = routeProvider.Value.GetRoutes(); + var routes = new List(); + routeProvider.Value.GetRoutes(routes); var feature = routeProvider.Metadata["Feature"] as Orchard.Environment.Extensions.Models.Feature; // If there is no feature, skip route. diff --git a/src/Orchard.Web/Modules/Orchard.Recipes/Routes.cs b/src/Orchard.Web/Modules/Orchard.Recipes/Routes.cs index 3b4e88446..3f195af9c 100644 --- a/src/Orchard.Web/Modules/Orchard.Recipes/Routes.cs +++ b/src/Orchard.Web/Modules/Orchard.Recipes/Routes.cs @@ -6,14 +6,9 @@ using Orchard.Mvc.Routes; namespace Orchard.Recipes { public class Routes : IRouteProvider { public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) - routes.Add(routeDescriptor); - } - - public IEnumerable GetRoutes() { - return new[] { - new RouteDescriptor { Priority = 5, - Route = new Route( + var routeDescriptor = new RouteDescriptor { + Priority = 5, + Route = new Route( "Recipes/Status/{executionId}", new RouteValueDictionary { {"area", "Orchard.Recipes"}, @@ -25,8 +20,9 @@ namespace Orchard.Recipes { {"area", "Orchard.Recipes"} }, new MvcRouteHandler()) - } - }; + }; + + routes.Add(routeDescriptor); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Search/Routes.cs b/src/Orchard.Web/Modules/Orchard.Search/Routes.cs index 4cd35d055..8ae194e8f 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Routes.cs +++ b/src/Orchard.Web/Modules/Orchard.Search/Routes.cs @@ -7,12 +7,7 @@ namespace Orchard.Search { public class Routes : IRouteProvider { public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) - routes.Add(routeDescriptor); - } - - public IEnumerable GetRoutes() { - return new[] { + var routeDescriptors = new[] { new RouteDescriptor { Priority = 5, Route = new Route("Search/ContentPicker", @@ -43,6 +38,9 @@ namespace Orchard.Search { new MvcRouteHandler()) } }; + + foreach (var routeDescriptor in routeDescriptors) + routes.Add(routeDescriptor); } } } diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Routes.cs b/src/Orchard.Web/Modules/Orchard.Setup/Routes.cs index 27533e0d9..5559b1788 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Routes.cs +++ b/src/Orchard.Web/Modules/Orchard.Setup/Routes.cs @@ -6,14 +6,8 @@ using Orchard.Mvc.Routes; namespace Orchard.Setup { public class Routes : IRouteProvider { public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) - routes.Add(routeDescriptor); - } - - public IEnumerable GetRoutes() { - return new[] { - new RouteDescriptor { - Route = new Route( + var routeDescriptor = new RouteDescriptor { + Route = new Route( "{controller}/{action}", new RouteValueDictionary { {"area", "Orchard.Setup"}, @@ -28,8 +22,9 @@ namespace Orchard.Setup { {"area", "Orchard.Setup"} }, new MvcRouteHandler()) - } }; + + routes.Add(routeDescriptor); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Routes.cs b/src/Orchard.Web/Modules/Orchard.Tags/Routes.cs index 3a4b79dcd..e74bcaeeb 100644 --- a/src/Orchard.Web/Modules/Orchard.Tags/Routes.cs +++ b/src/Orchard.Web/Modules/Orchard.Tags/Routes.cs @@ -6,15 +6,9 @@ using Orchard.Mvc.Routes; namespace Orchard.Tags { public class Routes : IRouteProvider { public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) - routes.Add(routeDescriptor); - } - - public IEnumerable GetRoutes() { - return new[] { - new RouteDescriptor { - Priority = 5, - Route = new Route( + var routeDescriptor = new RouteDescriptor { + Priority = 5, + Route = new Route( "Tags/{tagName}", new RouteValueDictionary { {"area", "Orchard.Tags"}, @@ -26,8 +20,9 @@ namespace Orchard.Tags { {"area", "Orchard.Tags"} }, new MvcRouteHandler()) - } }; + + routes.Add(routeDescriptor); } } } \ No newline at end of file diff --git a/src/Orchard/Environment/DefaultOrchardShell.cs b/src/Orchard/Environment/DefaultOrchardShell.cs index a1ee0bd0c..338fde90e 100644 --- a/src/Orchard/Environment/DefaultOrchardShell.cs +++ b/src/Orchard/Environment/DefaultOrchardShell.cs @@ -70,8 +70,12 @@ namespace Orchard.Environment { var pipeline = appBuilder.Build(); var allRoutes = new List(); - allRoutes.AddRange(_routeProviders.SelectMany(provider => provider.GetRoutes())); - allRoutes.AddRange(_httpRouteProviders.SelectMany(provider => provider.GetRoutes())); + foreach (var routeProvider in _routeProviders) { + routeProvider.GetRoutes(allRoutes); + } + foreach (var routeProvider in _httpRouteProviders) { + routeProvider.GetRoutes(allRoutes); + } _routePublisher.Publish(allRoutes, pipeline); _modelBinderPublisher.Publish(_modelBinderProviders.SelectMany(provider => provider.GetModelBinders())); diff --git a/src/Orchard/Mvc/Routes/DefaultRouteProvider.cs b/src/Orchard/Mvc/Routes/DefaultRouteProvider.cs index bd29ddd23..b5ca0992e 100644 --- a/src/Orchard/Mvc/Routes/DefaultRouteProvider.cs +++ b/src/Orchard/Mvc/Routes/DefaultRouteProvider.cs @@ -6,28 +6,23 @@ using System.Web.Routing; namespace Orchard.Mvc.Routes { public class DefaultRouteProvider : IRouteProvider { - public IEnumerable GetRoutes() { - return new[] { - new RouteDescriptor { - Priority = -20, - Route = new Route( - "{controller}/{action}/{id}", - new RouteValueDictionary { - {"controller", "home"}, - {"action", "index"}, - {"id", ""}, - }, - new RouteValueDictionary { - {"controller", new HomeOrAccount()} - }, - new MvcRouteHandler()) - } - }; - } - public void GetRoutes(ICollection routes) { - foreach(var routeDescriptor in GetRoutes()) - routes.Add(routeDescriptor); + var routeDescriptor = new RouteDescriptor { + Priority = -20, + Route = new Route( + "{controller}/{action}/{id}", + new RouteValueDictionary { + {"controller", "home"}, + {"action", "index"}, + {"id", ""}, + }, + new RouteValueDictionary { + {"controller", new HomeOrAccount()} + }, + new MvcRouteHandler()) + }; + + routes.Add(routeDescriptor); } //TEMP: this is hardcoded to allow base web app controllers to pass diff --git a/src/Orchard/Mvc/Routes/IRouteProvider.cs b/src/Orchard/Mvc/Routes/IRouteProvider.cs index 182b55917..2913fa72b 100644 --- a/src/Orchard/Mvc/Routes/IRouteProvider.cs +++ b/src/Orchard/Mvc/Routes/IRouteProvider.cs @@ -2,11 +2,6 @@ namespace Orchard.Mvc.Routes { public interface IRouteProvider : IDependency { - /// - /// obsolete, prefer other format for extension methods - /// - IEnumerable GetRoutes(); - void GetRoutes(ICollection routes); } } \ No newline at end of file diff --git a/src/Orchard/Mvc/Routes/StandardExtensionRouteProvider.cs b/src/Orchard/Mvc/Routes/StandardExtensionRouteProvider.cs index 1e095f66a..4fba14c91 100644 --- a/src/Orchard/Mvc/Routes/StandardExtensionRouteProvider.cs +++ b/src/Orchard/Mvc/Routes/StandardExtensionRouteProvider.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; @@ -14,7 +14,7 @@ namespace Orchard.Mvc.Routes { _blueprint = blueprint; } - public IEnumerable GetRoutes() { + public void GetRoutes(ICollection routes) { var displayPathsPerArea = _blueprint.Controllers.GroupBy( x => x.AreaName, x => x.Feature.Descriptor.Extension); @@ -27,9 +27,9 @@ namespace Orchard.Mvc.Routes { Enum.TryParse(extensionDescriptor.SessionState, true /*ignoreCase*/, out defaultSessionState); - yield return new RouteDescriptor { + routes.Add(new RouteDescriptor { Priority = -10, - SessionState = defaultSessionState, + SessionState = defaultSessionState, Route = new Route( "Admin/" + displayPath + "/{action}/{id}", new RouteValueDictionary { @@ -43,9 +43,9 @@ namespace Orchard.Mvc.Routes { {"area", areaName} }, new MvcRouteHandler()) - }; + }); - yield return new RouteDescriptor { + routes.Add(new RouteDescriptor { Priority = -10, SessionState = defaultSessionState, Route = new Route( @@ -61,13 +61,8 @@ namespace Orchard.Mvc.Routes { {"area", areaName} }, new MvcRouteHandler()) - }; + }); } } - - public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) - routes.Add(routeDescriptor); - } } } \ No newline at end of file diff --git a/src/Orchard/WebApi/Routes/IHttpRouteProvider.cs b/src/Orchard/WebApi/Routes/IHttpRouteProvider.cs index dacab33f5..f7b60d3a6 100644 --- a/src/Orchard/WebApi/Routes/IHttpRouteProvider.cs +++ b/src/Orchard/WebApi/Routes/IHttpRouteProvider.cs @@ -3,7 +3,6 @@ using Orchard.Mvc.Routes; namespace Orchard.WebApi.Routes { public interface IHttpRouteProvider : IDependency { - IEnumerable GetRoutes(); void GetRoutes(ICollection routes); } } diff --git a/src/Orchard/WebApi/Routes/StandardExtensionHttpRouteProvider.cs b/src/Orchard/WebApi/Routes/StandardExtensionHttpRouteProvider.cs index f92063c0d..d0766e73e 100644 --- a/src/Orchard/WebApi/Routes/StandardExtensionHttpRouteProvider.cs +++ b/src/Orchard/WebApi/Routes/StandardExtensionHttpRouteProvider.cs @@ -12,7 +12,7 @@ namespace Orchard.WebApi.Routes { _blueprint = blueprint; } - public IEnumerable GetRoutes() { + public void GetRoutes(ICollection routes) { var displayPathsPerArea = _blueprint.HttpControllers.GroupBy( x => x.AreaName, x => x.Feature.Descriptor.Extension.Path); @@ -21,18 +21,14 @@ namespace Orchard.WebApi.Routes { var areaName = item.Key; var displayPath = item.Distinct().Single(); - yield return new HttpRouteDescriptor { + var routeDescriptor = new HttpRouteDescriptor { Priority = -10, RouteTemplate = "api/" + displayPath + "/{controller}/{id}", - Defaults = new {area = areaName, controller = "api", id = RouteParameter.Optional} + Defaults = new { area = areaName, controller = "api", id = RouteParameter.Optional } }; - } - } - - public void GetRoutes(ICollection routes) { - foreach (var routeDescriptor in GetRoutes()) routes.Add(routeDescriptor); + } } } } \ No newline at end of file