private async Task <LaboratoryListVM> GetElementsAsync(int?page, int?instituteId, string keyword) { var vm = new LaboratoryListVM() { InstituteId = instituteId, Keyword = keyword, PageIndex = page ?? 1, PageSize = 10 }; var query = _db.Laboratories.Include(d => d.Institute).AsQueryable(); if (instituteId > 0) { query = query.Where(d => d.InstituteId == instituteId); } if (!string.IsNullOrEmpty(keyword)) { query = query.Where(d => d.Title.Contains(keyword)); } var pagelist = await query.OrderByDescending(d => d.Id).Skip((vm.PageIndex - 1) * vm.PageSize).Take(vm.PageSize).ProjectTo <LaboratoryVM>().ToListAsync(); vm.TotalCount = await query.CountAsync(); vm.Laboratories = new StaticPagedList <LaboratoryVM>(pagelist, vm.PageIndex, vm.PageSize, vm.TotalCount);; return(vm); }
// GET: Admin/Laboratories public async Task <ActionResult> Index(int?page, int?instituteId, string keyword) { LaboratoryListVM vm = await GetElementsAsync(page, instituteId, keyword); ViewBag.PageSizes = new SelectList(Site.PageSizes()); var categoryList = await _db.Institutes.OrderByDescending(c => c.Importance).ToListAsync(); ViewBag.Institutes = new SelectList(categoryList, "Id", "Title"); return(View(vm)); }