/// <summary> /// Query the /v2/top-headlines endpoint for live top news headlines. /// </summary> /// <param name="request">The params and filters for the request.</param> /// <returns></returns> public async Task <ArticlesResult> GetTopHeadlinesAsync(TopHeadlinesRequestNews request) { // build the querystring var queryParams = new List <string>(); // q if (!string.IsNullOrWhiteSpace(request.Q)) { queryParams.Add("q=" + request.Q); } // sources if (request.Sources.Count > 0) { queryParams.Add("sources=" + string.Join(",", request.Sources)); } if (request.Category.HasValue) { queryParams.Add("category=" + request.Category.Value.ToString().ToLowerInvariant()); } if (request.Language.HasValue) { queryParams.Add("language=" + request.Language.Value.ToString().ToLowerInvariant()); } if (request.Country.HasValue) { queryParams.Add("country=" + request.Country.Value.ToString().ToLowerInvariant()); } // page if (request.Page > 1) { queryParams.Add("page=" + request.Page); } // page size if (request.PageSize > 0) { queryParams.Add("pageSize=" + request.PageSize); } // join them together var querystring = string.Join("&", queryParams.ToArray()); return(await MakeRequest("top-headlines", querystring)); }
/// <summary> /// Query the /v2/top-headlines endpoint for live top news headlines. /// </summary> /// <param name="request">The params and filters for the request.</param> /// <returns></returns> public ArticlesResult GetTopHeadlines(TopHeadlinesRequestNews request) { return(GetTopHeadlinesAsync(request).Result); }