Example #1
0
        public IActionResult ShowResults(string searchingInput)
        {
            List <SearchResult> results = new List <SearchResult>();

            if (string.IsNullOrWhiteSpace(searchingInput))
            {
                throw new ArgumentNullException("SearchInput is null", nameof(searchingInput));
            }

            string searchQuery = searchingInput;

            if (context.GetSearchResults().Any(s => s.SearchingInput == searchingInput))
            {
                results = context.GetSearchResults().Where(s => s.SearchingInput == searchingInput).ToList();
            }
            else
            {
                var request = WebRequest.Create("https://www.googleapis.com/customsearch/v1?key=" + API_KEY + "&cx=" + SEARCH_ENGINE_ID_CX + "&q=" + searchQuery);

                results = RequestResultsDeserialize(request, searchingInput);

                int numberOfSelectedResults = 10;
                for (int i = 0; i < numberOfSelectedResults; i++)
                {
                    context.SaveSearchResult(results[i]);
                }
            }

            return(View(results));
        }
        public IPageOfItems<ISearchResult> GetSearchResults(PagingInfo pagingInfo, SearchCriteria criteria)
        {
            IPageOfItems<ISearchResult> searchResults =
                cache.GetItems<IPageOfItems<ISearchResult>, ISearchResult>(
                    string.Format("GetPosts-SearchTerm:{0}", criteria.Term),
                    pagingInfo.ToCachePartition(),
                    () => repository.GetSearchResults(pagingInfo, criteria),
                    null
                    );

            //if (context.RequestDataFormat.IsFeed())
            //    searchResults = searchResults.Since(context.RequestContext.HttpContext.Request.IfModifiedSince());

            pluginEngine.ExecuteAll("UserSearched", new { context, criteria });

            return searchResults;
        }
Example #3
0
        public IPageOfItems <ISearchResult> GetSearchResults(int pageIndex, int pageSize, SearchCriteria criteria)
        {
            IPageOfItems <ISearchResult> searchResults =
                cache.GetItems <IPageOfItems <ISearchResult>, ISearchResult>(
                    string.Format("GetPosts-SearchTerm:{0}", criteria.Term),
                    new CachePartition(pageIndex, pageSize),
                    () => repository.GetSearchResults(context.Site.ID, criteria).GetPage(pageIndex, pageSize),
                    null
                    );

            //if (context.RequestDataFormat.IsFeed())
            //    searchResults = searchResults.Since(context.RequestContext.HttpContext.Request.IfModifiedSince());

            pluginEngine.ExecuteAll("UserSearched", new { context, criteria });

            return(searchResults);
        }