public AuthorViewModel GetAuthorsByPage(int page, int pages, SearchAuthorsViewModel search) { IQueryable <Author> query = _authorRepository.GetAllAuthors(); AuthorViewModel model = new AuthorViewModel(); if (!string.IsNullOrEmpty(search.FirstName)) { query = query.Where(c => c.FirstName.Contains(search.FirstName)).AsQueryable(); } if (!string.IsNullOrEmpty(search.LastName)) { query = query.Where(c => c.LastName.Contains(search.LastName)).AsQueryable(); } model.Authors = query .OrderBy(c => c.LastName) .Skip((page - 1) * pages) .Take(pages) .Select(c => new AuthorItemViewModel { Id = c.Id, FirstName = c.FirstName, LastName = c.LastName }).AsQueryable(); model.TotalPages = (int)Math.Ceiling((double)query.Count() / pages); model.CurrentPage = page; model.Search = search; model.Pages = pages; return(model); }
//public ActionResult Index() //{ // var model = _authorProvider.GetAuthors(); // return View(model); //} public ActionResult Index(int page = 1, int pages = 10, SearchAuthorsViewModel search = null) { return(View(_authorProvider.GetAuthorsByPage(page, pages, search))); }