Ejemplo n.º 1
0
        private List <SearchResult> Map(BingResultModel search)
        {
            if (search?.webPages == null)
            {
                return(null);
            }

            List <SearchResult> results = new List <SearchResult>();

            foreach (BingSearchResult result in search.webPages.value)
            {
                SearchResult tempResult = new SearchResult
                {
                    Title = result.name,
                    Link  = result.url
                };
                results.Add(tempResult);
            }

            return(results);
        }
Ejemplo n.º 2
0
        public async virtual Task <List <SearchResult> > GetSearchResultsAsync(string query)
        {
            if (string.IsNullOrEmpty(query))
            {
                return(null);
            }

            WebRequest wbReq = CreateRequest(query);

            //TODO: Need to add a logger, NLog for example
            try
            {
                using (var hResp = await wbReq.GetResponseAsync() as HttpWebResponse)
                {
                    string strJSON;
                    using (var reader = new StreamReader(hResp.GetResponseStream()))
                    {
                        strJSON = reader.ReadToEnd();
                    }

                    BingResultModel result = JsonConvert.DeserializeObject <BingResultModel>(strJSON);

                    return(await Task.Run(() => { return Map(result); }));
                }
            }
            catch (WebException ex) //That exception causes when API KEY was expired
            {
                await Task.Delay(10000);

                return(null);
            }
            catch (Exception ex)
            {
                await Task.Delay(10000);

                return(null);
            }
        }