// 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)); }
// 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); }