Beispiel #1
0
        public async Task <NewsModel> GetNews()
        {
            string      apiKey     = options.Value.NewsApiKey;
            INewsClient newsClient = new ClientBuilder()
            {
                ApiKey = apiKey
            }.Build();
            INewsArticles newsArticles = await newsClient.GetTopHeadlines(new TopHeadlinesBuilder().WithSourcesQuery(Source.BBC_NEWS).Build());

            List <HeadlineModel> headlinesList = new List <HeadlineModel>();

            for (int i = 0; i < 3; i++)
            {
                var headline = new HeadlineModel()
                {
                    Id              = i + 1,
                    NewsTitle       = newsArticles[i].Title,
                    NewsDescription = newsArticles[i].Description
                };
                headlinesList.Add(headline);
            }

            NewsModel news = new NewsModel()
            {
                Headlines = headlinesList
            };

            return(news);
        }
        public async Task <ObservableCollection <NewsArticles> > GetNews(string searchQuery)
        {
            results = $"{0}";
            var News = new ObservableCollection <NewsArticles>();

            //HassieNewsAPI
            INewsClient client = new ClientBuilder()
            {
                ApiKey = "42b3db2e64f3417b9a0f05c631e544e3"
            }.Build();

            try
            {
                INewsArticles newsArticlesResponse = await client.GetTopHeadlines(new TopHeadlinesBuilder()
                                                                                  // .WithCountryQuery(Country.US)
                                                                                  //.WithLanguageQuery(Language.EN)
                                                                                  .WithSourcesQuery(Hassie.NET.API.NewsAPI.API.v2.Source.ABC_NEWS)
                                                                                  .Build());



                //NewsAPI
                //var client = new NewsApiClient("42b3db2e64f3417b9a0f05c631e544e3");
                //var newsArticlesResponse = client.GetEverything(new EverythingRequest {
                //    Q = searchQuery,
                //    SortBy = SortBys.Popularity,
                //    Language = Languages.EN,
                //    From = new DateTime(2018, 1, 25)

                //});
                //if (newsArticlesResponse.Status == Statuses.Ok)
                //{
                //    // total results found
                results = $"{newsArticlesResponse.Count}";

                //    // here's the first 20
                //    foreach (var article in newsArticlesResponse.Articles)
                //    {
                //        News.Add(new NewsArticles(article.Title??"No Result", article.Author ?? "No Result", article.Description ?? "No Result", article.Url ?? "No Result", article.UrlToImage ?? "No Result", article.PublishedAt ?? null));
                //    }
                //}

                foreach (var article in newsArticlesResponse)
                {
                    News.Add(new NewsArticles(article.Title ?? "No Result", article.Author ?? "No Result", article.Description ?? "No Result", article.URL ?? "No Result", article.ImageURL ?? "No Result", article.PublishTime, article.SourceName ?? "No Result"));
                }
            }
            catch (Exception ex)
            {
                Console.Write($"Error {ex.Message}");
            }

            return(News);
        }
Beispiel #3
0
        public async Task InitializeAsync()
        {
            // API key for NewsAPI
            INewsClient newsClient = new ClientBuilder()
            {
                ApiKey = "5fe4eb7f64af4875a48ab4ea5e50e875"
            }.Build();

            //News Query sent to NewsAPI
            // REturns top 20 articles relating to bitcoin
            INewsArticles newsArticles = await newsClient.GetEverything(new EverythingBuilder()
                                                                        .WithSearchQuery("bitcoin")
                                                                        .WithSearchQuery("cryptocurrency")
                                                                        .WithSortOrder(SortOrder.PUBLISHED_AT)
                                                                        .WithLanguageQuery(Hassie.NET.API.NewsAPI.API.v2.Language.EN)
                                                                        .Build());



            // The top 20 results
            foreach (INewsArticle article in newsArticles)
            {
                //Error handling : make sure there is an image to display
                if ((article.ImageURL != "") && (article.ImageURL != null))
                {
                    //  Uri uriImage = new Uri(article.ImageURL);
                    this.newsItems.Add(new NewsItem()
                    {
                        Title       = article.Title,
                        Subtitle    = article.SourceName,
                        Description = article.Description,
                        ImageURL    = article.ImageURL,
                        URL         = article.URL,
                        // create bitimap image from the url from response
                        ThumbImage = new Image
                        {
                            Source = new BitmapImage(new Uri(article.ImageURL, UriKind.Absolute))
                        }
                    });
                }
            }
        }