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
This commit is contained in:
Sébastien Ros
2010-07-27 19:46:07 -07:00
parent 06bc8f6888
commit 999369225e
3 changed files with 5 additions and 1 deletions

View File

@@ -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 {

View File

@@ -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}) %><%
} %>

View File

@@ -385,6 +385,9 @@ namespace Orchard.ContentManagement {
}
public ContentItemViewModel<TContentPart> BuildDisplayModel<TContentPart>(TContentPart content, string displayType) where TContentPart : IContent {
if (content == null)
return null;
var displayModel = new ContentItemViewModel<TContentPart>(content);
var context = new BuildDisplayModelContext(displayModel, displayType);
foreach (var handler in Handlers) {