public async Task<AppraiserListViewModel> GetPagedListAsync(AppraiserSearchRequest request) { var appraisers = _appraisers.AsNoTracking().Include(a => a.Creator).Include(a => a.LasModifier).Include(a => a.AppraiserTitle).OrderByDescending(a => a.LastName).ThenByDescending(a => a.FirstName).AsQueryable(); if (request.Term.HasValue()) appraisers = appraisers.Where(a => a.FirstName.Contains(request.Term) || a.LastName.Contains(request.Term)); var selectedAppraisers = appraisers.ProjectTo<AppraiserViewModel>(_mappingEngine); var query = await selectedAppraisers .Skip((request.PageIndex - 1) * 10) .Take(10).ToListAsync(); return new AppraiserListViewModel { SearchRequest = request, Appraisers = query }; }
public virtual async Task<ActionResult> ListAjax(AppraiserSearchRequest request) { var viewModel = await _appraiserService.GetPagedListAsync(request); if (viewModel.Appraisers == null || !viewModel.Appraisers.Any()) return Content("no-more-info"); return PartialView(MVC.Appraiser.Views._ListAjax, viewModel); }