From a09381d540b4919acf5b57743a0956dfc38f67c9 Mon Sep 17 00:00:00 2001 From: "andrerod@andrerod-dev1.redmond.corp.microsoft.com" Date: Tue, 30 Aug 2011 14:42:37 -0700 Subject: [PATCH] #17973: Avoiding all content items to be returned in case there is no content type with a containablePart. --HG-- branch : 1.x extra : transplant_source : %D7%ED%01G%00%40%28v%EF%DC%FE%22%B8%AF%23%9Fd%DB%19%25 --- .../Controllers/AdminController.cs | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Lists/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Lists/Controllers/AdminController.cs index 6d63d7c22..5d26204f3 100644 --- a/src/Orchard.Web/Modules/Orchard.Lists/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Lists/Controllers/AdminController.cs @@ -1,7 +1,6 @@ using System; -using System.Globalization; -using System.Linq; using System.Collections.Generic; +using System.Linq; using System.Web.Mvc; using Orchard.ContentManagement; using Orchard.ContentManagement.MetaData; @@ -11,24 +10,18 @@ using Orchard.Core.Containers.Models; using Orchard.Core.Contents; using Orchard.Core.Contents.Controllers; using Orchard.Core.Contents.Settings; -using Orchard.Core.Routable.Models; -using Orchard.Data; using Orchard.DisplayManagement; -using Orchard.DisplayManagement.Shapes; using Orchard.Lists.ViewModels; using Orchard.Localization; -using Orchard; using Orchard.Logging; using Orchard.Mvc.Extensions; using Orchard.Settings; using Orchard.UI.Navigation; -using Orchard.UI.Notify; -namespace Lists.Controllers { +namespace Orchard.Lists.Controllers { public class AdminController : Controller { private readonly IContentManager _contentManager; private readonly IContentDefinitionManager _contentDefinitionManager; - private readonly ITransactionManager _transactionManager; private readonly ISiteService _siteService; public IOrchardServices Services { get; set; } @@ -37,13 +30,12 @@ namespace Lists.Controllers { IOrchardServices orchardServices, IContentManager contentManager, IContentDefinitionManager contentDefinitionManager, - ITransactionManager transactionManager, ISiteService siteService, IShapeFactory shapeFactory) { + Services = orchardServices; _contentManager = contentManager; _contentDefinitionManager = contentDefinitionManager; - _transactionManager = transactionManager; _siteService = siteService; T = NullLocalizer.Instance; Logger = NullLogger.Instance; @@ -118,8 +110,14 @@ namespace Lists.Controllers { } private IContentQuery GetListContentItemQuery(int containerId, string contentType, ContentsOrder orderBy) { - var query = _contentManager.Query(VersionOptions.Latest, GetContainableTypes().Select(ctd => ctd.Name).ToArray()); + List containableTypes = GetContainableTypes().Select(ctd => ctd.Name).ToList(); + if (containableTypes.Count == 0) { + // Force the name to be matched against empty and return no items in the query + containableTypes.Add(string.Empty); + } + var query = _contentManager.Query(VersionOptions.Latest, containableTypes.ToArray()); + if (!string.IsNullOrEmpty(contentType)) { var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(contentType); if (contentTypeDefinition == null) { @@ -131,7 +129,6 @@ namespace Lists.Controllers { query = containerId == 0 ? query.Join().Where(cr => cr.Container == null) : query.Join().Where(cr => cr.Container.Id == containerId); - switch (orderBy) { case ContentsOrder.Modified: query = query.OrderByDescending(cr => cr.ModifiedUtc); @@ -143,6 +140,7 @@ namespace Lists.Controllers { query = query.OrderByDescending(cr => cr.CreatedUtc); break; } + return query; }