/// <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);
 }