예제 #1
0
        //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));
        }
예제 #2
0
        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));
            }
        }