/// <summary> /// Returns a collection of the latest articles /// </summary> public GetMostRecentArticlesResponse GetMostRecentArticles(GetMostRecentArticlesRequest request) { var apiClient = new WebApiClient(new Uri(Connection.BaseUrl)); var taskGetIds = apiClient.Get <List <int> >("newstories.json"); var dataIds = taskGetIds.Result; if (request.ArticleCount > 0) { dataIds = dataIds.Take(request.ArticleCount).ToList(); } var articles = new List <Article>(); foreach (var id in dataIds) { var taskGetItem = apiClient.Get <HackerNewsItem>($"item/{id}.json"); var item = taskGetItem.Result; var article = new Article { Headline = item.Title, Url = item.Url }; articles.Add(article); } return(new GetMostRecentArticlesResponse { Articles = articles }); }
public void GetMostRecentArticlesTest() { var conn = new WebApiConnection("https://hacker-news.firebaseio.com/v0/"); var client = new HackerNewsClient(conn); var request = new GetMostRecentArticlesRequest { ArticleCount = 20 }; var response = client.GetMostRecentArticles(request); response.Articles.Count.ShouldBe(20); }
public IEnumerable <Article> Get(int source) { var factory = new NewsClientFactory(_configuration); var client = factory.GetClient((NewsClientSource)source); var request = new GetMostRecentArticlesRequest { ArticleCount = int.Parse(_configuration["ArticleCount"]) }; var response = client.GetMostRecentArticles(request); return(response.Articles); }