Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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);
        }