Exemplo n.º 1
0
        public async Task <ActionResult <WatsonResponse> > PostWatsonPayload(WatsonPayload watsonPayload)
        {
            // _context.WatsonPayload.Add(watsonPayload);
            // await _context.SaveChangesAsync();
            WatsonResponse response = new WatsonResponse();
            NewsAPIClient  newsAPI  = new NewsAPIClient(_appSettings);

            switch (watsonPayload.Action)
            {
            case WatsonAction.News_Highlights:
                response.articles = await newsAPI.FindNewsHighlights(watsonPayload);

                response.status = true;
                break;

            case WatsonAction.News_Keyphrase:
                response.articles = await newsAPI.FindNewsKeyphrase(watsonPayload);

                response.status = true;
                break;

            default:
                response.status = false;
                break;
            }
            return(response);
        }
Exemplo n.º 2
0
        public async Task <List <Article> > FindNewsKeyphrase(WatsonPayload watsonJson)
        {
            List <Article> foundArticles = new List <Article>();

            using (var httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(NewsAPIKey);
                using (var response = await httpClient.GetAsync($"https://newsapi.org/v2/everything?q={watsonJson.Query}&language=en&sortBy=relevancy"))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();

                    JObject jsonResponse = JObject.Parse(apiResponse);
                    if (!jsonResponse["status"].ToString().Equals("ok"))
                    {
                        return(foundArticles);
                    }
                    foundArticles = JsonConvert.DeserializeObject <List <Article> >(jsonResponse["articles"].ToString());
                }
            }
            return(foundArticles);
        }
Exemplo n.º 3
0
        public async Task <List <Article> > FindNewsHighlights(WatsonPayload watsonJson)
        {
            List <Article> foundArticles = new List <Article>();

            using (var httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(NewsAPIKey);
                using (var response = await httpClient.GetAsync("https://newsapi.org/v2/top-headlines?country=sa"))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();

                    JObject jsonResponse = JObject.Parse(apiResponse);
                    if (!jsonResponse["status"].ToString().Equals("ok"))
                    {
                        return(foundArticles);
                    }
                    foundArticles = JsonConvert.DeserializeObject <List <Article> >(jsonResponse["articles"].ToString());
                }
            }
            return(foundArticles);
        }