// GET: Admin/Video

        #region Video

        public ActionResult Index(int?page, int?categoryId, string keyword)
        {
            VideoListVM videoListVM = GetElements(page, categoryId, keyword);

            ViewBag.PageSizes = new SelectList(Site.PageSizes());
            return(View(videoListVM));
        }
Пример #2
0
        // GET: Admin/Videos
        public async Task <IActionResult> Index(string keyword, string orderby, string sort, int?page)
        {
            var vm = new VideoListVM()
            {
                PageIndex = page == null || page <= 0 ? 1 : page.Value,
                Keyword   = keyword,
                PageSize  = 10,
                OrderBy   = orderby,
                Sort      = sort
            };

            //var pageSize = SettingsManager.Video.PageSize;
            var query = _context.Videos.AsNoTracking().AsQueryable();

            if (!string.IsNullOrEmpty(keyword))
            {
                query = query.Where(d => d.Title.Contains(keyword));
            }



            var gosort = $"{orderby}_{sort}";

            query = gosort switch
            {
                "importance_asc" => query.OrderBy(s => s.Importance),
                "importance_desc" => query.OrderByDescending(s => s.Importance),
                "title_asc" => query.OrderBy(s => s.Title),
                "title_desc" => query.OrderByDescending(s => s.Title),
                "date_asc" => query.OrderBy(s => s.CreatedDate),
                "date_desc" => query.OrderByDescending(s => s.CreatedDate),

                _ => query.OrderByDescending(s => s.Id),
            };


            vm.TotalCount = await query.CountAsync();

            var clients = await query
                          .Skip((vm.PageIndex - 1) *vm.PageSize).Take(vm.PageSize).ProjectTo <VideoBVM>(_mapper.ConfigurationProvider).ToListAsync();


            vm.Videos = new StaticPagedList <VideoBVM>(clients, vm.PageIndex, vm.PageSize, vm.TotalCount);



            ViewBag.PageSizes = new SelectList(Site.PageSizes());

            return(View(vm));
        }
        private VideoListVM GetElements(int?page, int?categoryId, string keyword)
        {
            var videoListVM = new VideoListVM()
            {
                Keyword    = keyword,
                PageIndex  = (page ?? 1),
                CategoryId = categoryId ?? 0,
                PageSize   = SettingsManager.Video.PageSize
            };
            int totalCount;

            var categoryList = _categoryServices.GetAll().OrderByDescending(c => c.Importance).ToList();
            var categories   = new SelectList(categoryList, "Id", "Title");

            ViewBag.Categories = categories;

            var videolist = _videoServices.GetPagedElements(videoListVM.PageIndex - 1, videoListVM.PageSize, videoListVM.Keyword, videoListVM.CategoryId, out totalCount);

            videoListVM.TotalCount = totalCount;
            videoListVM.Videos     = new StaticPagedList <Video>(videolist, videoListVM.PageIndex, videoListVM.PageSize, videoListVM.TotalCount);;
            return(videoListVM);
        }