//public async Task<IActionResult> Index(int pageIndex = 1, int pageSize = 20, string source = null, DateTime? dateFrom = null, DateTime? dateTo = null, string keyWord = "Apple", string keyWordInTitle = null, string sortBy = null, string language = "en") public async Task <IActionResult> Index([FromQuery] NewsSearchableFields newsSearchableFields, bool newPageIndex) { if (!newPageIndex) { newsSearchableFields.pageIndex = 1; } var v = await FetchArticlesData(newsSearchableFields); var sources = (await FetchSourcesData("", "en", "all")).sources; ViewBag.Source = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(sources, "id", "name"); ViewBag.NewsSearchableFields = newsSearchableFields; if (v.status == "error") { ViewBag.Error = v.message; return(View(v)); } var usersAsIPagedList = new StaticPagedList <News.Article>(v.articles, newsSearchableFields.pageIndex, newsSearchableFields.pageSize, v.totalResults); ViewBag.OnePageOfUsers = usersAsIPagedList; return(View(v)); }
public async Task <News.NewsApiArticles> FetchArticlesData(NewsSearchableFields newsSearchableFields) { var lan = string.IsNullOrEmpty(newsSearchableFields.language) ? NewsApiService.NewsLanguages.en : (NewsApiService.NewsLanguages)Enum.Parse(typeof(NewsApiService.NewsLanguages), newsSearchableFields.language); var cfg = new NewsApiConfig(this._configuration); using (var ns = new News.NewsApiService(cfg)) { return(await ns.GetEverything(newsSearchableFields.source, DateTime.Today, null, newsSearchableFields.keyWord, newsSearchableFields.keyWordInTitle, newsSearchableFields.sortBy, newsSearchableFields.pageIndex, newsSearchableFields.pageSize, lan)); } }