コード例 #1
0
        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 searchResults = mSearchService.Search(new SearchOptions(searchText, new [] { INDEX_NAME })
            {
                PageNumber = page,
                PageSize   = PAGE_SIZE
            });

            var searchResultItemModels = searchResults.Items
                                         .Select(searchResultItem => mSearchItemViewModelFactory.GetTypedSearchResultItemModel(searchResultItem));

            var model = new SearchResultsModel
            {
                Items = new StaticPagedList <SearchResultItemModel>(searchResultItemModels, page, PAGE_SIZE, searchResults.TotalNumberOfResults),
                Query = searchText
            };

            return(View(model));
        }
コード例 #2
0
        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);

            mPagesActivityLogger.LogInternalSearch(searchText);

            var searchResultItemModels = searchResults.Items
                                         .Select(searchResultItem => mSearchItemViewModelFactory.GetTypedSearchResultItemModel(searchResultItem));

            var model = new SearchResultsModel
            {
                Items = new StaticPagedList <SearchResultItemModel>(searchResultItemModels, page, PAGE_SIZE, searchResults.TotalNumberOfResults),
                Query = searchText
            };

            return(View(model));
        }
コード例 #3
0
        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));
        }