// GET: Search public ActionResult Index(string searchText, int page = DEFAULT_PAGE_NUMBER) { if (String.IsNullOrWhiteSpace(searchText)) { var empty = new SearchResultsModel { Items = new List <SearchResultItemModel>() }; return(View(empty)); } // Validate page number (starting from 1) page = Math.Max(page, DEFAULT_PAGE_NUMBER); var searchParameters = SearchParameters.PrepareForPages(searchText, new[] { INDEX_NAME }, page, PAGE_SIZE, MembershipContext.AuthenticatedUser); var searchResults = SearchHelper.Search(searchParameters); pagesActivityLogger.LogInternalSearch(searchText); var siteId = siteService.CurrentSite.SiteID; var culture = HttpContext.Features.Get <IRequestCultureFeature>().RequestCulture.Culture.Name; var hostAddress = HttpContext.Features.Get <IHttpConnectionFeature>().RemoteIpAddress.ToString(); var uri = new Uri(HttpContext.Request.GetEncodedUrl()); analyticsLogger.LogInternalSearchKeywords(new AnalyticsData(siteId, searchText, culture: culture, uri: uri, hostAddress: hostAddress)); var searchResultItemModels = searchResults.Items .Select(searchItemViewModelFactory.GetTypedSearchResultItemModel); var model = new SearchResultsModel { Items = searchResultItemModels.ToList(), Query = searchText, CurrentPage = page, NumberOfPages = (int)Math.Ceiling(searchResults.TotalNumberOfResults / (double)PAGE_SIZE) }; return(View(model)); }
public ActionResult Index(string searchText, int page = DEFAULT_PAGE_NUMBER) { if (String.IsNullOrWhiteSpace(searchText)) { var empty = new SearchResultsModel { Items = new StaticPagedList <SearchResultItemModel>(Enumerable.Empty <SearchResultItemModel>(), page, PAGE_SIZE, 0) }; return(View(empty)); } // Validate page number (starting from 1) page = Math.Max(page, DEFAULT_PAGE_NUMBER); var searchParameters = SearchParameters.PrepareForPages(searchText, new[] { INDEX_NAME }, page, PAGE_SIZE, MembershipContext.AuthenticatedUser); var searchResults = SearchHelper.Search(searchParameters); pagesActivityLogger.LogInternalSearch(searchText); var siteId = siteService.CurrentSite.SiteID; var culture = Thread.CurrentThread.CurrentCulture.Name; var uri = retriever.GetContext().Request.Url; var hostAddress = retriever.GetContext().Request.UserHostAddress; analyticsLogger.LogInternalSearchKeywords(new AnalyticsData(siteId, searchText, culture: culture, uri: uri, hostAddress: hostAddress)); var searchResultItemModels = searchResults.Items .Select(searchResultItem => searchItemViewModelFactory.GetTypedSearchResultItemModel(searchResultItem)); var model = new SearchResultsModel { Items = new StaticPagedList <SearchResultItemModel>(searchResultItemModels, page, PAGE_SIZE, searchResults.TotalNumberOfResults), Query = searchText }; return(View(model)); }