Exemple #1
0
        public void SearchAsyncTest_empty_string()
        {
            var str    = "";
            var engine = new GoogleEngine();
            var res    = engine.SearchAsync(str);

            Assert.IsInstanceOfType(res, typeof(System.Threading.Tasks.Task <Models.SearchResult>));
        }
Exemple #2
0
        public void SearchAsyncTest_simple_string()
        {
            var str    = "test";
            var engine = new GoogleEngine();
            var res    = engine.SearchAsync(str);

            Assert.IsInstanceOfType(res, typeof(System.Threading.Tasks.Task <Models.SearchResult>));
            Assert.IsTrue(res.Result.results.Count > 0);
        }
Exemple #3
0
        public void TestingEmptySearchTerm()
        {
            GoogleEngine ge = new GoogleEngine()
            {
                searchQuery = string.Empty
            };

            ge.ProcessingSearch();
        }
        public void ProcessingService()
        {
            iEngine searchEngine = new GoogleEngine()
            {
                searchQuery = _search.SearchQuery
            };

            _totalResults = searchEngine.ProcessingSearch();
        }
Exemple #5
0
        public void ProcessingSearchReturnsResults()
        {
            GoogleEngine ge = new GoogleEngine()
            {
                searchQuery = searchQuery
            };

            var totalResults = ge.ProcessingSearch();

            Assert.IsTrue(totalResults > 0);
        }
Exemple #6
0
        static IEngine[] Engines()
        {
            var googleApiUrl     = ConfigurationManager.AppSettings["GoogleApiUrl"];
            var googleApiKey     = ConfigurationManager.AppSettings["GoogleApiKey"];
            var googleApiContext = ConfigurationManager.AppSettings["GoogleApiContext"];
            var googleEngine     = new GoogleEngine(googleApiUrl, googleApiKey, googleApiContext);

            var bingApiUrl = ConfigurationManager.AppSettings["BingApiUrl"];
            var bingApiKey = ConfigurationManager.AppSettings["BingApiKey"];
            //todo validate keys
            var bingEngine = new BingEngine(bingApiUrl, bingApiKey);

            return(new IEngine[] { googleEngine, bingEngine });
        }
Exemple #7
0
        public Searching(List <string> ListaElms)
        {
            ListEngines = new List <SearchEngine>();

            SearchEngine GE = new GoogleEngine("Google"); // using Polymorphism

            ListEngines.Add(GE);

            SearchEngine YE = new YahooEngine("Yahoo"); // using Polymorphism

            ListEngines.Add(YE);

            ListSearchs = new List <Search>();

            ListProgLangs = LisStringToLisProgLang(ListaElms);
            SearchOk      = bSearchNumElmsOk();
            if (SearchOk)
            {
                try {
                    //BuildSearchs
                    foreach (ProgLang oPr in ListProgLangs)
                    {
                        Search oSearch = new Search(GE, oPr, 0);
                        oSearch.NumResults = GE.GetResults(oPr.NomLang);
                        ListSearchs.Add(oSearch);
                    }
                    foreach (ProgLang oPr in ListProgLangs)
                    {
                        Search oSearch = new Search(YE, oPr, 0);
                        oSearch.NumResults = YE.GetResults(oPr.NomLang);
                        ListSearchs.Add(oSearch);
                    }
                    // Doing calculations
                    Calc();
                    // Showing results
                    Message = ShowAllResults();
                }
                catch
                {
                    SearchOk = false;
                    Message  = "Error in performing search in Search Engine";
                }
            }
            else
            {
                Message = "In order to perform a comparison, must be at least 2 items to be compared";
            }
        }
        public async Task <IActionResult> IndexAsync(string TextRequest)
        {
            //create instances of engines
            var google = new GoogleEngine();
            var yandex = new YandexEngine();
            var bing   = new BingEngine();

            //create a list of instances to execute them at the same time
            var allTasks = new List <Task <SearchResult> > {
                bing.SearchAsync(TextRequest),
                google.SearchAsync(TextRequest),
                yandex.SearchAsync(TextRequest)
            };

            //when the first task was completed
            Task <SearchResult> finished = await Task.WhenAny(allTasks);

            allTasks.Clear();

            SearchResult res         = await finished;
            var          limitedList = res.results.Take(10).ToList();

            //save top 10 results
            foreach (var r in limitedList)
            {
                try
                {
                    await _context.searchResultItems.AddAsync(r);

                    await _context.SaveChangesAsync();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            SearchResultsViewModel resultsViewModel = new SearchResultsViewModel {
                resultItems = limitedList, fullText = (limitedList.Count == 0)? "Nothing found" : null
            };

            return(View(resultsViewModel));
        }