Utilizing the IIndexManager in the SearchService instead of directly hitting the provider (since there might not be one)

--HG--
branch : dev
This commit is contained in:
Nathan Heskew
2010-06-03 14:36:38 -07:00
parent 4ea06dd16d
commit 4f711f1e23
2 changed files with 9 additions and 6 deletions

View File

@@ -6,17 +6,17 @@ namespace Orchard.Search.Services
{
public class SearchService : ISearchService
{
private readonly IIndexProvider _indexProvider;
private readonly IIndexManager _indexManager;
public SearchService(IIndexProvider indexProvider) {
_indexProvider = indexProvider;
public SearchService(IIndexManager indexManager) {
_indexManager = indexManager;
}
public IEnumerable<ISearchHit> Query(string term) {
if (string.IsNullOrWhiteSpace(term))
if (string.IsNullOrWhiteSpace(term) || !_indexManager.HasIndexProvider())
return Enumerable.Empty<ISearchHit>();
return _indexProvider.CreateSearchBuilder("search")
return _indexManager.GetSearchIndexProvider().CreateSearchBuilder("search")
.WithField("title", term)
.WithField("body", term)
.Search();

View File

@@ -9,7 +9,10 @@ using(Html.BeginForm("index", "search", FormMethod.Get, new { @class = "search"
</fieldset><%
}
if (!string.IsNullOrWhiteSpace(Model.Term)) { %>
<p class="search-summary"><%=T("<em>{0}</em> results", Model.Results.Count()) %></p><%
}
if (Model.Results.Count() > 0) { %>
<p class="search-summary"><%=T("<em>{0}</em> results", Model.Results.Count()) %></p>
<%=Html.UnorderedList(Model.Results, (r, i) => Html.DisplayForItem(r.Content).ToHtmlString(), "search-results contentItems") %><%
} %>