From 999369225ea9b308a88469a5a07c4faac7398b8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Ros?= <> Date: Tue, 27 Jul 2010 19:46:07 -0700 Subject: [PATCH] When a search result doesn't exist, it is not displayed - Might occur when a deleted content is searched before the index is updated (short time), eventually when the search is triggered on another server of a farm --HG-- branch : dev --- .../Modules/Orchard.Search/Controllers/SearchController.cs | 1 + src/Orchard.Web/Modules/Orchard.Search/Views/Search/Index.ascx | 2 +- src/Orchard/ContentManagement/DefaultContentManager.cs | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Orchard.Web/Modules/Orchard.Search/Controllers/SearchController.cs b/src/Orchard.Web/Modules/Orchard.Search/Controllers/SearchController.cs index eb6bbfb43..8d1c11747 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Controllers/SearchController.cs +++ b/src/Orchard.Web/Modules/Orchard.Search/Controllers/SearchController.cs @@ -5,6 +5,7 @@ using Orchard.Search.Services; using Orchard.Search.ViewModels; using Orchard.Settings; using Orchard.Search.Models; +using System.Linq; using System; namespace Orchard.Search.Controllers { diff --git a/src/Orchard.Web/Modules/Orchard.Search/Views/Search/Index.ascx b/src/Orchard.Web/Modules/Orchard.Search/Views/Search/Index.ascx index d51a45cfe..fd5b331c8 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Views/Search/Index.ascx +++ b/src/Orchard.Web/Modules/Orchard.Search/Views/Search/Index.ascx @@ -12,6 +12,6 @@ if (!string.IsNullOrWhiteSpace(Model.Query)) { } } if (Model.PageOfResults != null && Model.PageOfResults.Count() > 0) { %> -<%=Html.UnorderedList(Model.PageOfResults, (r, i) => Html.DisplayForItem(r.Content) , "search-results contentItems") %> +<%=Html.UnorderedList(Model.PageOfResults.Where(hit => hit.Content != null), (r, i) => Html.DisplayForItem(r.Content), "search-results contentItems")%> <%=Html.Pager(Model.PageOfResults, Model.PageOfResults.PageNumber, Model.DefaultPageSize, new {q = Model.Query}) %><% } %> \ No newline at end of file diff --git a/src/Orchard/ContentManagement/DefaultContentManager.cs b/src/Orchard/ContentManagement/DefaultContentManager.cs index af8338985..f30e1e566 100644 --- a/src/Orchard/ContentManagement/DefaultContentManager.cs +++ b/src/Orchard/ContentManagement/DefaultContentManager.cs @@ -385,6 +385,9 @@ namespace Orchard.ContentManagement { } public ContentItemViewModel BuildDisplayModel(TContentPart content, string displayType) where TContentPart : IContent { + if (content == null) + return null; + var displayModel = new ContentItemViewModel(content); var context = new BuildDisplayModelContext(displayModel, displayType); foreach (var handler in Handlers) {