public async Task <IActionResult> NewsList(int page = 1, string searchText = null, bool only15MinutesVideo = false) { int newsOnPageCount = _configurationHelper.ListedNewsCount; PaggingSearchResponseViewModel <NewsViewModel> model = await _finwireNewsService.GetNewsSearchPaging(newsOnPageCount, page, searchText, only15MinutesVideo); return(View(model)); }
public async Task <IActionResult> NewsListGreenTag(int page = 1, string searchText = null) { int newsOnPageCount = _configurationHelper.ListedNewsCount; PaggingSearchResponseViewModel <NewsViewModel> model = await _finwireNewsService.GetNewsSearchPaging(newsOnPageCount, page, searchText, false, true); return(View(model)); }
public async Task <PaggingSearchResponseViewModel <NewsViewModel> > GetNewsSearchPaging(int newsOnPageCount, int nextPage, string searchText, bool only15MinutesVideo = false, bool greenTag = false) { var result = new PaggingSearchResponseViewModel <NewsViewModel>(); //IF search text is not set and only15MinutesVideo is also not set (case when we make page-by page from main page without any filtering) //THEN output only non-Borsvarlden articles (only finwire) //ELSE output all articles (finwire + Authors articles) var query = string.IsNullOrEmpty(searchText) && !(only15MinutesVideo || greenTag) ? GetNonBorsvarldenArticles() : GetAllArticles(); if (!string.IsNullOrEmpty(searchText)) { query = query.Where(x => x.Title.Contains(searchText) || x.CompanyName.Contains(searchText)); } if (only15MinutesVideo) { query = query.Where(x => x.Is15MinutesVideo); if (string.IsNullOrEmpty(searchText)) { query = query.Where(x => TimeHelper.Time < x.VideoVisibleDeadLine); } } if (greenTag) { query = query.Where(x => x.GreenTag == true); } List <FinwireNew> newsList = await query.Skip(newsOnPageCount *(nextPage - 1)).Take(newsOnPageCount).ToListAsync(); result.TotalCount = await query.CountAsync(); result.Data = MapFinwireNewToViewModel(newsList); result.CurrentPage = nextPage; result.ItemsOnPageCount = newsOnPageCount; result.SearchText = searchText; return(result); }