public ActionResult Search(String q, int? page) { Int32 currentPage = page ?? 1; SearchResultViewModel searchResult = new SearchResultViewModel() { SearchQuery = q, SearchSuggestion=String.Empty }; IList<XsQuestion> searchQuestions = new List<XsQuestion>(); if (!String.IsNullOrEmpty(q)) { ISearchEngineService searchService = new SearchEngineService(questionRepository); searchQuestions = searchService.SearchQuestions(q); } IPagination pageQuestions = searchQuestions.AsPagination(currentPage,Settings.QUESTIONS_PAGINATION_SIZE); Int32 currentPageSize = Settings.TAGS_PAGINATION_SIZE; if (currentPage == pageQuestions.TotalPages) { currentPageSize = pageQuestions.TotalItems - (pageQuestions.TotalPages - 1) * Settings.TAGS_PAGINATION_SIZE; } else { if (0 == pageQuestions.TotalPages) { currentPageSize = 0; } } searchResult.Questions = pageQuestions; if (0 == pageQuestions.TotalItems) { String searchSuggestion = new XpertSquare.Core.Search.GoogleSearchSuggestor().GetSuggestion(q); searchResult.SearchSuggestion = searchSuggestion; } return View(searchResult); }