/
SearchPageViewModelBuilder.cs
34 lines (29 loc) · 1.3 KB
/
SearchPageViewModelBuilder.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
namespace DemoSite.Business.ViewModelBuilders {
using System.Collections.Generic;
using KalikoCMS.Search;
using Models.Pages;
using Models.ViewModels;
using PagedList;
public class SearchPageViewModelBuilder {
public const int PageSize = 5;
public static SearchPageViewModel Create(SearchPage currentPage, string query, int page) {
var model= new SearchPageViewModel(currentPage);
PageViewModelBuilder.SetBaseProperties(model);
model.SearchResult = new PagedList<SearchHit>(GetSearchResult(currentPage, query, page), page, PageSize);
model.Query = query;
model.Page = page;
return model;
}
private static List<SearchHit> GetSearchResult(SearchPage currentPage, string query, int page) {
// Build the query and tell the search engine that we want the additional fields "category" and "summary"
var searchQuery = new SearchQuery(query) {
MetaData = new[] {"category", "summary"}
//NumberOfHitsToReturn = PageSize,
//ReturnFromPosition = PageSize*(page - 1)
};
// Perform the searh
var result = SearchManager.Instance.Search(searchQuery);
return result.Hits;
}
}
}