示例#1
0
        public async Task <IActionResult> Index(int page = 1, bool archived = false)
        {
            var filter = new BaseFilter(page)
            {
                IsActive = !archived
            };

            var dashboardContentList = await _dashboardContentService.GetPaginatedListAsync(filter);

            PaginateViewModel paginateModel = new PaginateViewModel()
            {
                ItemCount    = dashboardContentList.Count,
                CurrentPage  = page,
                ItemsPerPage = filter.Take.Value
            };

            if (paginateModel.MaxPage > 0 && paginateModel.CurrentPage > paginateModel.MaxPage)
            {
                return(RedirectToRoute(
                           new
                {
                    page = paginateModel.LastPage ?? 1
                }));
            }

            var viewModel = new DashboardListViewModel()
            {
                DashboardContents = dashboardContentList.Data.ToList(),
                PaginateModel     = paginateModel
            };

            if (viewModel.DashboardContents.FirstOrDefault()?.StartTime < _dateTimeProvider.Now &&
                archived == false)
            {
                viewModel.HighlightFirst = true;
            }

            return(View(viewModel));
        }