public async Task <ActionResult> Index(int?page, string filter = null) { var pageSize = 16; var pageNumber = (page ?? 1); var books = await _repo.GetAllBooks(); var viewBooks = Mapper.Map <IEnumerable <BookViewModel> >(books); if (filter == null || filter == string.Empty) { return(View(viewBooks.ToPagedList(pageNumber, pageSize))); } else { return(View(viewBooks.Where(b => b.Name.ToLower().Contains(filter.ToLower()) || b.Price.ToString().Contains(filter) || b.Author.ToLower().Contains(filter.ToLower())) .ToPagedList(pageNumber, pageSize))); } }