From e04cba683f0cd80880554b98ae0511b00243b4ec Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Wed, 11 Jul 2012 11:23:04 -0700 Subject: [PATCH 1/9] #18797, 18799: Fixing MenuPart and NavigationPart Work Items: 18797, 18799 --- .../Core/Navigation/Drivers/MenuPartDriver.cs | 9 ++- .../Drivers/NavigationPartDriver.cs | 62 +++++++++++++++++-- .../Navigation/Handlers/MenuPartHandler.cs | 15 +++-- src/Orchard.Web/Core/Navigation/Migrations.cs | 2 +- .../ViewModels/NavigationPartViewModel.cs | 5 ++ .../Parts.Navigation.Edit.cshtml | 33 +++++++--- .../Orchard.Blogs/Commands/BlogCommands.cs | 8 ++- .../Orchard.Pages/Commands/PageCommands.cs | 8 ++- 8 files changed, 116 insertions(+), 26 deletions(-) diff --git a/src/Orchard.Web/Core/Navigation/Drivers/MenuPartDriver.cs b/src/Orchard.Web/Core/Navigation/Drivers/MenuPartDriver.cs index f07a9d085..b72c64d25 100644 --- a/src/Orchard.Web/Core/Navigation/Drivers/MenuPartDriver.cs +++ b/src/Orchard.Web/Core/Navigation/Drivers/MenuPartDriver.cs @@ -1,5 +1,4 @@ -using System; -using JetBrains.Annotations; +using JetBrains.Annotations; using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; using Orchard.Core.Navigation.Models; @@ -32,6 +31,12 @@ namespace Orchard.Core.Navigation.Drivers { public Localizer T { get; set; } + protected override string Prefix { + get { + return "MenuPart"; + } + } + protected override DriverResult Editor(MenuPart part, dynamic shapeHelper) { if (!_authorizationService.TryCheckAccess(Permissions.ManageMainMenu, _orchardServices.WorkContext.CurrentUser, part)) return null; diff --git a/src/Orchard.Web/Core/Navigation/Drivers/NavigationPartDriver.cs b/src/Orchard.Web/Core/Navigation/Drivers/NavigationPartDriver.cs index 8fd9850df..92e305b67 100644 --- a/src/Orchard.Web/Core/Navigation/Drivers/NavigationPartDriver.cs +++ b/src/Orchard.Web/Core/Navigation/Drivers/NavigationPartDriver.cs @@ -1,8 +1,12 @@ using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; using Orchard.Core.Navigation.Models; +using Orchard.Core.Navigation.Services; using Orchard.Core.Navigation.ViewModels; +using Orchard.Localization; using Orchard.Security; +using Orchard.UI.Navigation; +using Orchard.Utility; namespace Orchard.Core.Navigation.Drivers { @@ -10,14 +14,30 @@ namespace Orchard.Core.Navigation.Drivers { private readonly IAuthorizationService _authorizationService; private readonly IWorkContextAccessor _workContextAccessor; private readonly IContentManager _contentManager; + private readonly IMenuService _menuService; + private readonly INavigationManager _navigationManager; public NavigationPartDriver( IAuthorizationService authorizationService, IWorkContextAccessor workContextAccessor, - IContentManager contentManager) { + IContentManager contentManager, + IMenuService menuService, + INavigationManager navigationManager) { _authorizationService = authorizationService; _workContextAccessor = workContextAccessor; _contentManager = contentManager; + _menuService = menuService; + _navigationManager = navigationManager; + + T = NullLocalizer.Instance; + } + + public Localizer T { get; set; } + + protected override string Prefix { + get { + return "NavigationPart"; + } } protected override DriverResult Editor(NavigationPart part, dynamic shapeHelper) { @@ -28,14 +48,48 @@ namespace Orchard.Core.Navigation.Drivers { return ContentShape("Parts_Navigation_Edit", () => { // loads all menu part of type ContentMenuItem linking to the current content item - var model = new NavigationPartViewModel() { + var model = new NavigationPartViewModel { Part = part, - ContentMenuItems = _contentManager.Query() - .Join().Where(x => x.ContentMenuItemRecord == part.ContentItem.Record).List() + ContentMenuItems = _contentManager + .Query() + .Join() + .Where(x => x.ContentMenuItemRecord == part.ContentItem.Record) + .List(), + Menus = _menuService.GetMenus(), }; return shapeHelper.EditorTemplate(TemplateName: "Parts.Navigation.Edit", Model: model, Prefix: Prefix); }); } + + protected override DriverResult Editor(NavigationPart part, IUpdateModel updater, dynamic shapeHelper) { + var currentUser = _workContextAccessor.GetContext().CurrentUser; + if (!_authorizationService.TryCheckAccess(Permissions.ManageMainMenu, currentUser, part)) + return null; + + var model = new NavigationPartViewModel(); + + if (updater.TryUpdateModel(model, Prefix, null, null)) { + if(model.AddMenuItem) { + if (string.IsNullOrEmpty(model.MenuText)) { + updater.AddModelError("MenuText", T("The MenuText field is required")); + } + else { + var menu = _contentManager.Get(model.CurrentMenuId); + + if(menu != null) { + var menuItem = _contentManager.Create("ContentMenuItem"); + menuItem.Content = part.ContentItem; + + menuItem.As().MenuText = model.MenuText; + menuItem.As().MenuPosition = Position.GetNext(_navigationManager.BuildMenu(menu)); + menuItem.As().Menu = menu; + } + } + } + } + + return Editor(part, shapeHelper); + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Navigation/Handlers/MenuPartHandler.cs b/src/Orchard.Web/Core/Navigation/Handlers/MenuPartHandler.cs index ac97ff062..479e0e691 100644 --- a/src/Orchard.Web/Core/Navigation/Handlers/MenuPartHandler.cs +++ b/src/Orchard.Web/Core/Navigation/Handlers/MenuPartHandler.cs @@ -25,16 +25,21 @@ namespace Orchard.Core.Navigation.Handlers { OnActivated(PropertySetHandlers); } - protected static void PropertySetHandlers(ActivatedContentContext context, MenuPart menuPart) { + protected void PropertySetHandlers(ActivatedContentContext context, MenuPart menuPart) { menuPart.MenuField.Setter(menu => { - menuPart.Record.MenuId = menu.ContentItem.Id; + if(menu == null || menu.ContentItem == null) { + menuPart.Record.MenuId = 0; + } + else { + menuPart.Record.MenuId = menu.ContentItem.Id; + } + return menu; }); - } - protected void LazyLoadHandlers(MenuPart menuPart) { menuPart.MenuField.Loader(ctx => - _contentManager.Get(menuPart.Record.MenuId, menuPart.IsPublished() ? VersionOptions.Published : VersionOptions.Latest)); + _contentManager.Get(menuPart.Record.MenuId, menuPart.IsPublished() ? VersionOptions.Published : VersionOptions.Latest) + ); } protected override void GetItemMetadata(GetContentItemMetadataContext context) { diff --git a/src/Orchard.Web/Core/Navigation/Migrations.cs b/src/Orchard.Web/Core/Navigation/Migrations.cs index 703829029..78c3b5580 100644 --- a/src/Orchard.Web/Core/Navigation/Migrations.cs +++ b/src/Orchard.Web/Core/Navigation/Migrations.cs @@ -14,7 +14,7 @@ namespace Orchard.Core.Navigation { public int Create() { ContentDefinitionManager.AlterPartDefinition("MenuPart", builder => builder.Attachable()); ContentDefinitionManager.AlterPartDefinition("NavigationPart", builder => builder.Attachable()); - ContentDefinitionManager.AlterTypeDefinition("Page", cfg => cfg.WithPart("MenuPart")); + ContentDefinitionManager.AlterTypeDefinition("Page", cfg => cfg.WithPart("NavigationPart")); SchemaBuilder.CreateTable("MenuItemPartRecord", table => table diff --git a/src/Orchard.Web/Core/Navigation/ViewModels/NavigationPartViewModel.cs b/src/Orchard.Web/Core/Navigation/ViewModels/NavigationPartViewModel.cs index 17034dd26..3f5a60686 100644 --- a/src/Orchard.Web/Core/Navigation/ViewModels/NavigationPartViewModel.cs +++ b/src/Orchard.Web/Core/Navigation/ViewModels/NavigationPartViewModel.cs @@ -1,9 +1,14 @@ using System.Collections.Generic; +using Orchard.ContentManagement; using Orchard.Core.Navigation.Models; namespace Orchard.Core.Navigation.ViewModels { public class NavigationPartViewModel { public IEnumerable ContentMenuItems { get; set; } public NavigationPart Part { get; set; } + public IEnumerable Menus { get; set; } + public string MenuText { get; set; } + public bool AddMenuItem { get; set; } + public int CurrentMenuId { get; set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.Navigation.Edit.cshtml b/src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.Navigation.Edit.cshtml index d937d7100..795e74a74 100644 --- a/src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.Navigation.Edit.cshtml +++ b/src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.Navigation.Edit.cshtml @@ -9,18 +9,35 @@ @T("The menu items linking to this content item.") @if(Model.ContentMenuItems.Any()) {
    - @foreach(var menuPart in Model.ContentMenuItems) { - var menuContentItem = contentManager.Get(menuPart.Menu.Id); - var menuName = Html.ItemDisplayText(menuContentItem).ToString(); -
  • -
    @menuPart.MenuText @T("on") @Html.ActionLink(menuName, "Index", "Admin", new { area = "Navigation", menuId = menuContentItem.Id }, new {})
    -
  • - } + @foreach(var menuPart in Model.ContentMenuItems) { + var menuContentItem = contentManager.Get(menuPart.Menu.Id); + var menuName = Html.ItemDisplayText(menuContentItem).ToString(); +
  • +
    @menuPart.MenuText @T("on") @Html.ActionLink(menuName, "Index", "Admin", new { area = "Navigation", menuId = menuContentItem.Id }, new {})
    +
  • + }
} else { @T("Not displayed in any menu.") } - +
+ @Html.EditorFor(m => m.AddMenuItem) + +
+ + @T("Select which menu you want the content item to be added on.") + + + @Html.TextBoxFor(m => m.MenuText, new { @class = "text-box single-line" }) + @T("The text that should appear in the menu.") +
+ + +
\ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Commands/BlogCommands.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Commands/BlogCommands.cs index 35f880e6b..e68cddf65 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Commands/BlogCommands.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Commands/BlogCommands.cs @@ -91,9 +91,11 @@ namespace Orchard.Blogs.Commands { var menu = _menuService.GetMenu(MenuName); if (menu != null) { - blog.As().MenuPosition = Position.GetNext(_navigationManager.BuildMenu(menu)); - blog.As().MenuText = MenuText; - blog.As().Menu = menu.ContentItem; + var menuItem = _contentManager.Create("ContentMenuItem"); + menuItem.Content = blog; + menuItem.As().MenuPosition = Position.GetNext(_navigationManager.BuildMenu(menu)); + menuItem.As().MenuText = MenuText; + menuItem.As().Menu = menu; } } diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Commands/PageCommands.cs b/src/Orchard.Web/Modules/Orchard.Pages/Commands/PageCommands.cs index 57b22cf02..3f438a014 100644 --- a/src/Orchard.Web/Modules/Orchard.Pages/Commands/PageCommands.cs +++ b/src/Orchard.Web/Modules/Orchard.Pages/Commands/PageCommands.cs @@ -80,9 +80,11 @@ namespace Orchard.Pages.Commands { var menu = _menuService.GetMenu(MenuName); if (menu != null) { - page.As().MenuPosition = Position.GetNext(_navigationManager.BuildMenu(menu)); - page.As().MenuText = MenuText; - page.As().Menu = menu.ContentItem; + var menuItem = _contentManager.Create("ContentMenuItem"); + menuItem.Content = page; + menuItem.As().MenuPosition = Position.GetNext(_navigationManager.BuildMenu(menu)); + menuItem.As().MenuText = MenuText; + menuItem.As().Menu = menu; } } From a7f0494ae07f88b08a4e65e1f35682886d7543df Mon Sep 17 00:00:00 2001 From: styx31 Date: Wed, 11 Jul 2012 11:24:49 -0700 Subject: [PATCH 2/9] #18798: Fixing double enconding for AdminMenuPart Work Item: 18798 --- .../Core/Navigation/Services/AdminMenuNavigationProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Orchard.Web/Core/Navigation/Services/AdminMenuNavigationProvider.cs b/src/Orchard.Web/Core/Navigation/Services/AdminMenuNavigationProvider.cs index a9f865a21..12dcd4375 100644 --- a/src/Orchard.Web/Core/Navigation/Services/AdminMenuNavigationProvider.cs +++ b/src/Orchard.Web/Core/Navigation/Services/AdminMenuNavigationProvider.cs @@ -25,7 +25,7 @@ namespace Orchard.Core.Navigation.Services { if (menuPart != null) { var part = menuPart; - builder.Add(new LocalizedString(HttpUtility.HtmlEncode(part.AdminMenuText)), + builder.Add(new LocalizedString(part.AdminMenuText), part.AdminMenuPosition, item => item.Action(_contentManager.GetItemMetadata(part.ContentItem).AdminRouteValues)); // todo: somehow determine if they will ultimately have rights to the destination and hide if not. possibly would need to add a Permission to metadata. From 28a7f7450d14cd77b62d7f1f9d8b9b2ad1707dd3 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Wed, 11 Jul 2012 11:28:27 -0700 Subject: [PATCH 3/9] #18795: Fixing exception when no theme is enabled Work Item: 18795 --- .../Modules/Orchard.Widgets/Services/WidgetsService.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Services/WidgetsService.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Services/WidgetsService.cs index e6a6cb665..92a79369e 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Services/WidgetsService.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Services/WidgetsService.cs @@ -78,6 +78,10 @@ namespace Orchard.Widgets.Services { } public IEnumerable GetZones(ExtensionDescriptor theme) { + if(theme == null) { + return Enumerable.Empty(); + } + IEnumerable zones = new List(); // get the zones for this theme From 28e378dfaedc3d27cff4f2a22c0720e6d33f4b49 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Wed, 11 Jul 2012 11:54:15 -0700 Subject: [PATCH 4/9] #18801: Fixing exception in AuthorizationEventHandler Work Item: 18801 --- .hgsubstate | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hgsubstate b/.hgsubstate index e642b8f01..afac77c67 100644 --- a/.hgsubstate +++ b/.hgsubstate @@ -2,7 +2,7 @@ c47525e90819321d37962a11313006a4ccfc8362 src/Orchard.Web/Modules/Orchard.AntiSpa 03306c0dad118c03c4ee21ce274a5f9c5855aec3 src/Orchard.Web/Modules/Orchard.Autoroute a8cd78f4730747bf592935aaa605874938a9c89f src/Orchard.Web/Modules/Orchard.ContentPermissions 3957b9528d8499f9adcb0a606e12c5e5015ed035 src/Orchard.Web/Modules/Orchard.ContentPicker -3ad1bdc80b8374433d98469e8740bc48ef114be2 src/Orchard.Web/Modules/Orchard.CustomForms +8ac5b68b6ad42cfce6be53e6bd776a35ac14c6e7 src/Orchard.Web/Modules/Orchard.CustomForms b639cb33d2ba038de6048350400b664399608996 src/Orchard.Web/Modules/Orchard.Forms b748de63e3cf8debfc3eba77f26089705147047d src/Orchard.Web/Modules/Orchard.Rules 419399ef2e37122a000e6cc8674148d3183d7032 src/Orchard.Web/Modules/Orchard.TaskLease From dd3e831934ee989ca15b725e30509a492f49409f Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Wed, 11 Jul 2012 11:54:46 -0700 Subject: [PATCH 5/9] #18796: Fixing permissions editor when the settings have not been saved Work Item: 18796 --- .hgsubstate | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hgsubstate b/.hgsubstate index afac77c67..a8d1ea1e7 100644 --- a/.hgsubstate +++ b/.hgsubstate @@ -1,6 +1,6 @@ c47525e90819321d37962a11313006a4ccfc8362 src/Orchard.Web/Modules/Orchard.AntiSpam 03306c0dad118c03c4ee21ce274a5f9c5855aec3 src/Orchard.Web/Modules/Orchard.Autoroute -a8cd78f4730747bf592935aaa605874938a9c89f src/Orchard.Web/Modules/Orchard.ContentPermissions +5eb5861244852a382332abfbfe2d28ac1b9bd419 src/Orchard.Web/Modules/Orchard.ContentPermissions 3957b9528d8499f9adcb0a606e12c5e5015ed035 src/Orchard.Web/Modules/Orchard.ContentPicker 8ac5b68b6ad42cfce6be53e6bd776a35ac14c6e7 src/Orchard.Web/Modules/Orchard.CustomForms b639cb33d2ba038de6048350400b664399608996 src/Orchard.Web/Modules/Orchard.Forms From 3c6b27d036a49abed9fdf14d0e43e1751b798c2e Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Thu, 12 Jul 2012 11:24:31 -0700 Subject: [PATCH 6/9] #18808: Fixing ghost menu items when migrating from 1.4 Work Item: 18808 --- src/Orchard.Web/Core/Navigation/Migrations.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Orchard.Web/Core/Navigation/Migrations.cs b/src/Orchard.Web/Core/Navigation/Migrations.cs index 78c3b5580..f90048d36 100644 --- a/src/Orchard.Web/Core/Navigation/Migrations.cs +++ b/src/Orchard.Web/Core/Navigation/Migrations.cs @@ -171,8 +171,8 @@ namespace Orchard.Core.Navigation { // assign the Main Menu to all current menu items foreach (var menuItem in _menuService.Get()) { - // if they don't have a position, then they are not displayed - if(string.IsNullOrWhiteSpace(menuItem.MenuPosition)) { + // if they don't have a position or a text, then they are not displayed + if(string.IsNullOrWhiteSpace(menuItem.MenuPosition) || string.IsNullOrEmpty(menuItem.MenuText)) { continue; } menuItem.Menu = mainMenu.ContentItem; From 082e7bdcea749b1305483a0db6d7950a81788c4a Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Thu, 12 Jul 2012 12:26:16 -0700 Subject: [PATCH 7/9] Adding missing ContentMenuItem in migration --- src/Orchard.Web/Core/Navigation/Migrations.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Orchard.Web/Core/Navigation/Migrations.cs b/src/Orchard.Web/Core/Navigation/Migrations.cs index f90048d36..e574d92ad 100644 --- a/src/Orchard.Web/Core/Navigation/Migrations.cs +++ b/src/Orchard.Web/Core/Navigation/Migrations.cs @@ -165,6 +165,21 @@ namespace Orchard.Core.Navigation { ContentDefinitionManager.AlterPartDefinition("NavigationPart", builder => builder.Attachable()); + SchemaBuilder.CreateTable("ContentMenuItemPartRecord", + table => table + .ContentPartRecord() + .Column("ContentMenuItemRecord_id") + ); + + ContentDefinitionManager.AlterTypeDefinition("ContentMenuItem", cfg => cfg + .WithPart("MenuPart") + .WithPart("CommonPart") + .WithPart("IdentityPart") + .WithPart("ContentMenuItemPart") + .DisplayedAs("Content Menu Item") + .WithSetting("Description", "Adds a Content Item to the menu.") + .WithSetting("Stereotype", "MenuItem") + ); // create a Main Menu var mainMenu = _menuService.Create("Main Menu"); From 65eed0a23f4eb029f92d6f9c4f3fa90cf218b79a Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Thu, 12 Jul 2012 12:33:54 -0700 Subject: [PATCH 8/9] #18794: Renaming UpgradeTo14 to UpgradeTo15 --HG-- rename : src/Orchard.Web/Modules/UpgradeTo14/AdminMenu.cs => src/Orchard.Web/Modules/UpgradeTo15/AdminMenu.cs rename : src/Orchard.Web/Modules/UpgradeTo14/Controllers/FieldController.cs => src/Orchard.Web/Modules/UpgradeTo15/Controllers/FieldController.cs rename : src/Orchard.Web/Modules/UpgradeTo14/Controllers/RouteController.cs => src/Orchard.Web/Modules/UpgradeTo15/Controllers/RouteController.cs rename : src/Orchard.Web/Modules/UpgradeTo14/Module.txt => src/Orchard.Web/Modules/UpgradeTo15/Module.txt rename : src/Orchard.Web/Modules/UpgradeTo14/Properties/AssemblyInfo.cs => src/Orchard.Web/Modules/UpgradeTo15/Properties/AssemblyInfo.cs rename : src/Orchard.Web/Modules/UpgradeTo14/Scripts/Web.config => src/Orchard.Web/Modules/UpgradeTo15/Scripts/Web.config rename : src/Orchard.Web/Modules/UpgradeTo14/Styles/Web.config => src/Orchard.Web/Modules/UpgradeTo15/Styles/Web.config rename : src/Orchard.Web/Modules/UpgradeTo14/ViewModels/MigrateViewModel.cs => src/Orchard.Web/Modules/UpgradeTo15/ViewModels/MigrateViewModel.cs rename : src/Orchard.Web/Modules/UpgradeTo14/Views/Field/Index.cshtml => src/Orchard.Web/Modules/UpgradeTo15/Views/Field/Index.cshtml rename : src/Orchard.Web/Modules/UpgradeTo14/Views/Route/Index.cshtml => src/Orchard.Web/Modules/UpgradeTo15/Views/Route/Index.cshtml rename : src/Orchard.Web/Modules/UpgradeTo14/Views/Web.config => src/Orchard.Web/Modules/UpgradeTo15/Views/Web.config rename : src/Orchard.Web/Modules/UpgradeTo14/Web.config => src/Orchard.Web/Modules/UpgradeTo15/Web.config --- .../{UpgradeTo14 => UpgradeTo15}/AdminMenu.cs | 8 +++--- .../Controllers/FieldController.cs | 5 ++-- .../Controllers/RouteController.cs | 6 ++--- .../{UpgradeTo14 => UpgradeTo15}/Module.txt | 8 +++--- .../Properties/AssemblyInfo.cs | 2 +- .../Scripts/Web.config | 0 .../Styles/Web.config | 0 .../UpgradeTo15.csproj} | 4 +-- .../ViewModels/MigrateViewModel.cs | 2 +- .../Views/Field/Index.cshtml | 0 .../Views/Route/Index.cshtml | 0 .../Views/Web.config | 0 .../{UpgradeTo14 => UpgradeTo15}/Web.config | 0 src/Orchard.sln | 26 +++++++++---------- 14 files changed, 30 insertions(+), 31 deletions(-) rename src/Orchard.Web/Modules/{UpgradeTo14 => UpgradeTo15}/AdminMenu.cs (67%) rename src/Orchard.Web/Modules/{UpgradeTo14 => UpgradeTo15}/Controllers/FieldController.cs (95%) rename src/Orchard.Web/Modules/{UpgradeTo14 => UpgradeTo15}/Controllers/RouteController.cs (96%) rename src/Orchard.Web/Modules/{UpgradeTo14 => UpgradeTo15}/Module.txt (60%) rename src/Orchard.Web/Modules/{UpgradeTo14 => UpgradeTo15}/Properties/AssemblyInfo.cs (94%) rename src/Orchard.Web/Modules/{UpgradeTo14 => UpgradeTo15}/Scripts/Web.config (100%) rename src/Orchard.Web/Modules/{UpgradeTo14 => UpgradeTo15}/Styles/Web.config (100%) rename src/Orchard.Web/Modules/{UpgradeTo14/UpgradeTo14.csproj => UpgradeTo15/UpgradeTo15.csproj} (96%) rename src/Orchard.Web/Modules/{UpgradeTo14 => UpgradeTo15}/ViewModels/MigrateViewModel.cs (85%) rename src/Orchard.Web/Modules/{UpgradeTo14 => UpgradeTo15}/Views/Field/Index.cshtml (100%) rename src/Orchard.Web/Modules/{UpgradeTo14 => UpgradeTo15}/Views/Route/Index.cshtml (100%) rename src/Orchard.Web/Modules/{UpgradeTo14 => UpgradeTo15}/Views/Web.config (100%) rename src/Orchard.Web/Modules/{UpgradeTo14 => UpgradeTo15}/Web.config (100%) diff --git a/src/Orchard.Web/Modules/UpgradeTo14/AdminMenu.cs b/src/Orchard.Web/Modules/UpgradeTo15/AdminMenu.cs similarity index 67% rename from src/Orchard.Web/Modules/UpgradeTo14/AdminMenu.cs rename to src/Orchard.Web/Modules/UpgradeTo15/AdminMenu.cs index dcb26de5e..8133fe697 100644 --- a/src/Orchard.Web/Modules/UpgradeTo14/AdminMenu.cs +++ b/src/Orchard.Web/Modules/UpgradeTo15/AdminMenu.cs @@ -2,7 +2,7 @@ using Orchard.Security; using Orchard.UI.Navigation; -namespace UpgradeTo14 { +namespace UpgradeTo15 { public class AdminMenu : INavigationProvider { public Localizer T { get; set; } @@ -12,9 +12,9 @@ namespace UpgradeTo14 { public void GetNavigation(NavigationBuilder builder) { builder - .Add(T("Migrate to 1.4"), "0", menu => menu.Action("Index", "Route", new { area = "UpgradeTo14" }) - .Add(T("Migrate Routes"), "0", item => item.Action("Index", "Route", new { area = "UpgradeTo14" }).LocalNav().Permission(StandardPermissions.SiteOwner)) - .Add(T("Migrate Fields"), "0", item => item.Action("Index", "Field", new { area = "UpgradeTo14" }).LocalNav().Permission(StandardPermissions.SiteOwner)) + .Add(T("Migrate to 1.5"), "0", menu => menu.Action("Index", "Route", new { area = "UpgradeTo15" }) + .Add(T("Migrate Routes"), "0", item => item.Action("Index", "Route", new { area = "UpgradeTo15" }).LocalNav().Permission(StandardPermissions.SiteOwner)) + .Add(T("Migrate Fields"), "0", item => item.Action("Index", "Field", new { area = "UpgradeTo15" }).LocalNav().Permission(StandardPermissions.SiteOwner)) ); } } diff --git a/src/Orchard.Web/Modules/UpgradeTo14/Controllers/FieldController.cs b/src/Orchard.Web/Modules/UpgradeTo15/Controllers/FieldController.cs similarity index 95% rename from src/Orchard.Web/Modules/UpgradeTo14/Controllers/FieldController.cs rename to src/Orchard.Web/Modules/UpgradeTo15/Controllers/FieldController.cs index 7aeecb7ec..9b6cf9045 100644 --- a/src/Orchard.Web/Modules/UpgradeTo14/Controllers/FieldController.cs +++ b/src/Orchard.Web/Modules/UpgradeTo15/Controllers/FieldController.cs @@ -4,15 +4,14 @@ using System.Web.Mvc; using Orchard; using Orchard.ContentManagement; using Orchard.ContentManagement.MetaData; -using Orchard.Data; using Orchard.Environment.Features; using Orchard.Localization; using Orchard.Security; using Orchard.UI.Admin; using Orchard.UI.Notify; -using UpgradeTo14.ViewModels; +using UpgradeTo15.ViewModels; -namespace UpgradeTo14.Controllers { +namespace UpgradeTo15.Controllers { [Admin] public class FieldController : Controller { private readonly IContentDefinitionManager _contentDefinitionManager; diff --git a/src/Orchard.Web/Modules/UpgradeTo14/Controllers/RouteController.cs b/src/Orchard.Web/Modules/UpgradeTo15/Controllers/RouteController.cs similarity index 96% rename from src/Orchard.Web/Modules/UpgradeTo14/Controllers/RouteController.cs rename to src/Orchard.Web/Modules/UpgradeTo15/Controllers/RouteController.cs index 8a6087aca..845780bec 100644 --- a/src/Orchard.Web/Modules/UpgradeTo14/Controllers/RouteController.cs +++ b/src/Orchard.Web/Modules/UpgradeTo15/Controllers/RouteController.cs @@ -18,9 +18,9 @@ using Orchard.Reports.Services; using Orchard.Security; using Orchard.UI.Admin; using Orchard.UI.Notify; -using UpgradeTo14.ViewModels; +using UpgradeTo15.ViewModels; -namespace UpgradeTo14.Controllers { +namespace UpgradeTo15.Controllers { [Admin] public class RouteController : Controller { private readonly IContentDefinitionManager _contentDefinitionManager; @@ -73,7 +73,7 @@ namespace UpgradeTo14.Controllers { if(TryUpdateModel(viewModel)) { // creating report - _reportsCoordinator.Register("Migration", "UpgradeTo14", "Migrating " + string.Join(" ,", viewModel.ContentTypes.Where(x => x.IsChecked).Select(x => x.ContentTypeName).ToArray())); + _reportsCoordinator.Register("Migration", "UpgradeTo15", "Migrating " + string.Join(" ,", viewModel.ContentTypes.Where(x => x.IsChecked).Select(x => x.ContentTypeName).ToArray())); var contentTypesToMigrate = viewModel.ContentTypes.Where(c => c.IsChecked).Select(c => c.ContentTypeName); diff --git a/src/Orchard.Web/Modules/UpgradeTo14/Module.txt b/src/Orchard.Web/Modules/UpgradeTo15/Module.txt similarity index 60% rename from src/Orchard.Web/Modules/UpgradeTo14/Module.txt rename to src/Orchard.Web/Modules/UpgradeTo15/Module.txt index 3fcc45fbf..3dc6142ba 100644 --- a/src/Orchard.Web/Modules/UpgradeTo14/Module.txt +++ b/src/Orchard.Web/Modules/UpgradeTo15/Module.txt @@ -1,11 +1,11 @@ -Name: UpgradeTo14 +Name: UpgradeTo15 AntiForgery: enabled Author: The Orchard Team Website: http://orchardproject.net Version: 1.5 -OrchardVersion: 1.4 +OrchardVersion: 1.5 Description: Description for the module Features: - UpgradeTo14: - Description: Description for feature UpgradeTo14. + UpgradeTo15: + Description: Description for feature UpgradeTo15. Dependencies: Orchard.Autoroute, Title \ No newline at end of file diff --git a/src/Orchard.Web/Modules/UpgradeTo14/Properties/AssemblyInfo.cs b/src/Orchard.Web/Modules/UpgradeTo15/Properties/AssemblyInfo.cs similarity index 94% rename from src/Orchard.Web/Modules/UpgradeTo14/Properties/AssemblyInfo.cs rename to src/Orchard.Web/Modules/UpgradeTo15/Properties/AssemblyInfo.cs index 1566bee55..b57d6ab15 100644 --- a/src/Orchard.Web/Modules/UpgradeTo14/Properties/AssemblyInfo.cs +++ b/src/Orchard.Web/Modules/UpgradeTo15/Properties/AssemblyInfo.cs @@ -6,7 +6,7 @@ using System.Security; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("UpgradeTo14")] +[assembly: AssemblyTitle("UpgradeTo15")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyProduct("Orchard")] diff --git a/src/Orchard.Web/Modules/UpgradeTo14/Scripts/Web.config b/src/Orchard.Web/Modules/UpgradeTo15/Scripts/Web.config similarity index 100% rename from src/Orchard.Web/Modules/UpgradeTo14/Scripts/Web.config rename to src/Orchard.Web/Modules/UpgradeTo15/Scripts/Web.config diff --git a/src/Orchard.Web/Modules/UpgradeTo14/Styles/Web.config b/src/Orchard.Web/Modules/UpgradeTo15/Styles/Web.config similarity index 100% rename from src/Orchard.Web/Modules/UpgradeTo14/Styles/Web.config rename to src/Orchard.Web/Modules/UpgradeTo15/Styles/Web.config diff --git a/src/Orchard.Web/Modules/UpgradeTo14/UpgradeTo14.csproj b/src/Orchard.Web/Modules/UpgradeTo15/UpgradeTo15.csproj similarity index 96% rename from src/Orchard.Web/Modules/UpgradeTo14/UpgradeTo14.csproj rename to src/Orchard.Web/Modules/UpgradeTo15/UpgradeTo15.csproj index b3d015603..36b59c633 100644 --- a/src/Orchard.Web/Modules/UpgradeTo14/UpgradeTo14.csproj +++ b/src/Orchard.Web/Modules/UpgradeTo15/UpgradeTo15.csproj @@ -9,8 +9,8 @@ {fae04ec0-301f-11d3-bf4b-00c04f79efbc} Library Properties - UpgradeTo14 - UpgradeTo14 + UpgradeTo15 + UpgradeTo15 v4.0 false diff --git a/src/Orchard.Web/Modules/UpgradeTo14/ViewModels/MigrateViewModel.cs b/src/Orchard.Web/Modules/UpgradeTo15/ViewModels/MigrateViewModel.cs similarity index 85% rename from src/Orchard.Web/Modules/UpgradeTo14/ViewModels/MigrateViewModel.cs rename to src/Orchard.Web/Modules/UpgradeTo15/ViewModels/MigrateViewModel.cs index 71537ffd9..a26027d86 100644 --- a/src/Orchard.Web/Modules/UpgradeTo14/ViewModels/MigrateViewModel.cs +++ b/src/Orchard.Web/Modules/UpgradeTo15/ViewModels/MigrateViewModel.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace UpgradeTo14.ViewModels { +namespace UpgradeTo15.ViewModels { public class MigrateViewModel { public IList ContentTypes { get; set; } } diff --git a/src/Orchard.Web/Modules/UpgradeTo14/Views/Field/Index.cshtml b/src/Orchard.Web/Modules/UpgradeTo15/Views/Field/Index.cshtml similarity index 100% rename from src/Orchard.Web/Modules/UpgradeTo14/Views/Field/Index.cshtml rename to src/Orchard.Web/Modules/UpgradeTo15/Views/Field/Index.cshtml diff --git a/src/Orchard.Web/Modules/UpgradeTo14/Views/Route/Index.cshtml b/src/Orchard.Web/Modules/UpgradeTo15/Views/Route/Index.cshtml similarity index 100% rename from src/Orchard.Web/Modules/UpgradeTo14/Views/Route/Index.cshtml rename to src/Orchard.Web/Modules/UpgradeTo15/Views/Route/Index.cshtml diff --git a/src/Orchard.Web/Modules/UpgradeTo14/Views/Web.config b/src/Orchard.Web/Modules/UpgradeTo15/Views/Web.config similarity index 100% rename from src/Orchard.Web/Modules/UpgradeTo14/Views/Web.config rename to src/Orchard.Web/Modules/UpgradeTo15/Views/Web.config diff --git a/src/Orchard.Web/Modules/UpgradeTo14/Web.config b/src/Orchard.Web/Modules/UpgradeTo15/Web.config similarity index 100% rename from src/Orchard.Web/Modules/UpgradeTo14/Web.config rename to src/Orchard.Web/Modules/UpgradeTo15/Web.config diff --git a/src/Orchard.sln b/src/Orchard.sln index bbbc4ab7a..590d3f56a 100644 --- a/src/Orchard.sln +++ b/src/Orchard.sln @@ -136,8 +136,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Alias", "Orchard.We EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Autoroute", "Orchard.Web\Modules\Orchard.Autoroute\Orchard.Autoroute.csproj", "{66FCCD76-2761-47E3-8D11-B45D0001DDAA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UpgradeTo14", "Orchard.Web\Modules\UpgradeTo14\UpgradeTo14.csproj", "{8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Autoroute.Specs", "Orchard.Web\Modules\Orchard.Autoroute\Specs\Orchard.Autoroute.Specs.csproj", "{AC4402A1-61C4-4229-B840-FB1777DAE10C}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.AntiSpam", "Orchard.Web\Modules\Orchard.AntiSpam\Orchard.AntiSpam.csproj", "{91BC2E7F-DA04-421C-98EF-76D37CEC130C}" @@ -148,6 +146,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.ContentPicker", "Or EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.ContentPermissions", "Orchard.Web\Modules\Orchard.ContentPermissions\Orchard.ContentPermissions.csproj", "{E826F796-8CE3-4B5B-8423-5AA5F81D2FC3}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UpgradeTo15", "Orchard.Web\Modules\UpgradeTo15\UpgradeTo15.csproj", "{8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution CodeCoverage|Any CPU = CodeCoverage|Any CPU @@ -748,16 +748,6 @@ Global {66FCCD76-2761-47E3-8D11-B45D0001DDAA}.FxCop|Any CPU.Build.0 = Release|Any CPU {66FCCD76-2761-47E3-8D11-B45D0001DDAA}.Release|Any CPU.ActiveCfg = Release|Any CPU {66FCCD76-2761-47E3-8D11-B45D0001DDAA}.Release|Any CPU.Build.0 = Release|Any CPU - {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.CodeCoverage|Any CPU.ActiveCfg = Release|Any CPU - {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.CodeCoverage|Any CPU.Build.0 = Release|Any CPU - {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.Coverage|Any CPU.ActiveCfg = Release|Any CPU - {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.Coverage|Any CPU.Build.0 = Release|Any CPU - {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.FxCop|Any CPU.ActiveCfg = Release|Any CPU - {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.FxCop|Any CPU.Build.0 = Release|Any CPU - {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.Release|Any CPU.Build.0 = Release|Any CPU {AC4402A1-61C4-4229-B840-FB1777DAE10C}.CodeCoverage|Any CPU.ActiveCfg = Release|Any CPU {AC4402A1-61C4-4229-B840-FB1777DAE10C}.CodeCoverage|Any CPU.Build.0 = Release|Any CPU {AC4402A1-61C4-4229-B840-FB1777DAE10C}.Coverage|Any CPU.ActiveCfg = Release|Any CPU @@ -805,6 +795,16 @@ Global {E826F796-8CE3-4B5B-8423-5AA5F81D2FC3}.FxCop|Any CPU.Build.0 = Release|Any CPU {E826F796-8CE3-4B5B-8423-5AA5F81D2FC3}.Release|Any CPU.ActiveCfg = Release|Any CPU {E826F796-8CE3-4B5B-8423-5AA5F81D2FC3}.Release|Any CPU.Build.0 = Release|Any CPU + {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.CodeCoverage|Any CPU.ActiveCfg = Release|Any CPU + {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.CodeCoverage|Any CPU.Build.0 = Release|Any CPU + {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.Coverage|Any CPU.ActiveCfg = Release|Any CPU + {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.Coverage|Any CPU.Build.0 = Release|Any CPU + {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.FxCop|Any CPU.ActiveCfg = Release|Any CPU + {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.FxCop|Any CPU.Build.0 = Release|Any CPU + {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -853,11 +853,11 @@ Global {3787DDE5-E5C8-4841-BDA7-DCB325388064} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5} {475B6C45-B27C-438B-8966-908B9D6D1077} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5} {66FCCD76-2761-47E3-8D11-B45D0001DDAA} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5} - {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5} {91BC2E7F-DA04-421C-98EF-76D37CEC130C} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5} {2CF067CA-064B-43C6-8B88-5E3B99A65F1D} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5} {F301EF7D-F19C-4D83-AA94-CB64F29C037D} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5} {E826F796-8CE3-4B5B-8423-5AA5F81D2FC3} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5} + {8A9FDB57-342D-49C2-BAFC-D885AAE5CC7C} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5} {ABC826D4-2FA1-4F2F-87DE-E6095F653810} = {74E681ED-FECC-4034-B9BD-01B0BB1BDECA} {F112851D-B023-4746-B6B1-8D2E5AD8F7AA} = {74E681ED-FECC-4034-B9BD-01B0BB1BDECA} {6CB3EB30-F725-45C0-9742-42599BA8E8D2} = {74E681ED-FECC-4034-B9BD-01B0BB1BDECA} From 9a716ada305e0b8e01cd0d29abfcd026a61afbdd Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Fri, 13 Jul 2012 11:24:06 -0700 Subject: [PATCH 9/9] Optimizing Count() usage where needed. Prevents useless queries when huge amount of data is manipulated. --- .../Controllers/BlogAdminController.cs | 2 +- .../Handlers/BlogPartArchiveHandler.cs | 2 +- .../Orchard.Blogs/Handlers/BlogPostPartHandler.cs | 2 +- .../Controllers/AdminController.cs | 14 +++++++------- .../Modules/Orchard.Tags/Services/TagService.cs | 5 ++++- .../Orchard.Widgets/Controllers/AdminController.cs | 9 +++++---- 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs index 73d41861d..a47cfeff7 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs @@ -154,7 +154,7 @@ namespace Orchard.Blogs.Controllers { list.AddRange(_blogService.Get(VersionOptions.Latest) .Select(b => { var blog = Services.ContentManager.BuildDisplay(b, "SummaryAdmin"); - blog.TotalPostCount = _blogPostService.Get(b, VersionOptions.Latest).Count(); + blog.TotalPostCount = _blogPostService.PostCount(b, VersionOptions.Latest); return blog; })); diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Handlers/BlogPartArchiveHandler.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Handlers/BlogPartArchiveHandler.cs index 775943dc8..31bc10d81 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Handlers/BlogPartArchiveHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Handlers/BlogPartArchiveHandler.cs @@ -32,7 +32,7 @@ namespace Orchard.Blogs.Handlers { var posts = blogPostService.Get(blogPostPart.BlogPart, VersionOptions.Published); // create a dictionary of all the year/month combinations and their count of posts that are published in this blog - var inMemoryBlogArchives = new Dictionary(posts.Count()); + var inMemoryBlogArchives = new Dictionary(); foreach (var post in posts) { if (!post.Has()) continue; diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Handlers/BlogPostPartHandler.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Handlers/BlogPostPartHandler.cs index f9e3c12bf..68c802cd6 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Handlers/BlogPostPartHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Handlers/BlogPostPartHandler.cs @@ -43,7 +43,7 @@ namespace Orchard.Blogs.Handlers { // Ensure the "right" set of published posts for the blog is obtained blogPart.ContentItem.ContentManager.Flush(); - blogPart.PostCount = _blogPostService.Get(blogPart, VersionOptions.Published).Count(); + blogPart.PostCount = _blogPostService.PostCount(blogPart); } } diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/AdminController.cs index a113b6824..697ff7517 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/AdminController.cs @@ -49,26 +49,26 @@ namespace Orchard.Comments.Controllers { options = new CommentIndexOptions(); // Filtering - IContentQuery comments; + IContentQuery commentsQuery; switch (options.Filter) { case CommentIndexFilter.All: - comments = _commentService.GetComments(); + commentsQuery = _commentService.GetComments(); break; case CommentIndexFilter.Approved: - comments = _commentService.GetComments(CommentStatus.Approved); + commentsQuery = _commentService.GetComments(CommentStatus.Approved); break; case CommentIndexFilter.Pending: - comments = _commentService.GetComments(CommentStatus.Pending); + commentsQuery = _commentService.GetComments(CommentStatus.Pending); break; case CommentIndexFilter.Spam: - comments = _commentService.GetComments(CommentStatus.Spam); + commentsQuery = _commentService.GetComments(CommentStatus.Spam); break; default: throw new ArgumentOutOfRangeException(); } - var pagerShape = Shape.Pager(pager).TotalItemCount(comments.Count()); - var entries = comments + var pagerShape = Shape.Pager(pager).TotalItemCount(commentsQuery.Count()); + var entries = commentsQuery .OrderByDescending(cpr => cpr.CommentDateUtc) .Slice(pager.GetStartIndex(), pager.PageSize) .ToList() diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Services/TagService.cs b/src/Orchard.Web/Modules/Orchard.Tags/Services/TagService.cs index 2f27e5b1b..b5045086a 100644 --- a/src/Orchard.Web/Modules/Orchard.Tags/Services/TagService.cs +++ b/src/Orchard.Web/Modules/Orchard.Tags/Services/TagService.cs @@ -142,7 +142,10 @@ namespace Orchard.Tags.Services { } public int GetTaggedContentItemCount(int tagId, VersionOptions options) { - return GetTaggedContentItems(tagId, options).Count(); + return _orchardServices.ContentManager + .Query() + .Where(tpr => tpr.Tags.Any(tr => tr.TagRecord.Id == tagId)) + .Count(); } private void TagContentItem(TagsPartRecord tagsPartRecord, string tagName) { diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Controllers/AdminController.cs index 56fc03bb5..bb9c014c3 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Controllers/AdminController.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Web.Mvc; using System.Linq; using Orchard.ContentManagement; @@ -116,9 +117,9 @@ namespace Orchard.Widgets.Controllers { return RedirectToAction("Index"); } - IEnumerable layers = _widgetsService.GetLayers(); + IEnumerable layers = _widgetsService.GetLayers().ToList(); - if (layers.Count() == 0) { + if (!layers.Any()) { Services.Notifier.Error(T("Layer not found: {0}", layerId)); return RedirectToAction("Index"); } @@ -147,8 +148,8 @@ namespace Orchard.Widgets.Controllers { if (widgetPart == null) return HttpNotFound(); try { - int widgetPosition = _widgetsService.GetWidgets().Where(widget => widget.Zone == widgetPart.Zone).Count() + 1; - widgetPart.Position = widgetPosition.ToString(); + int widgetPosition = _widgetsService.GetWidgets().Count(widget => widget.Zone == widgetPart.Zone) + 1; + widgetPart.Position = widgetPosition.ToString(CultureInfo.InvariantCulture); widgetPart.Zone = zone; widgetPart.LayerPart = _widgetsService.GetLayer(layerId); dynamic model = Services.ContentManager.BuildEditor(widgetPart);