public List <Book> GetList(BookSortType sort, int pageSize, int pageNumber) { var books = from s in db.Books select s; switch (sort) { case BookSortType.Title: books = books.OrderBy(b => b.Title); break; case BookSortType.TitleDesc: books = books.OrderByDescending(b => b.Title); break; case BookSortType.Price: books = books.OrderBy(b => b.Price); break; case BookSortType.PriceDesc: books = books.OrderByDescending(b => b.Price); break; case BookSortType.Quantity: books = books.OrderBy(b => b.Quantity); break; case BookSortType.QuantityDesc: books = books.OrderByDescending(b => b.Quantity); break; case BookSortType.ImgUrl: books = books.OrderBy(b => b.ImgUrl); break; case BookSortType.ImgUrlDesc: books = books.OrderByDescending(b => b.ImgUrl); break; case BookSortType.IsActive: books = books.OrderBy(b => b.IsActive); break; case BookSortType.IsActiveDesc: books = books.OrderByDescending(b => b.IsActive); break; default: break; } return(books .Skip(pageSize * (pageNumber - 1)) .Take(pageSize) .Include(b => b.Author) .Include(b => b.Category) .Include(b => b.Publisher) .ToList()); }
// GET: Books public ActionResult Index(int?pageNumber, BookSortType sort = BookSortType.Title) { // Sorting. ViewBag.SortTitle = (sort == BookSortType.Title ? BookSortType.TitleDesc : BookSortType.Title); ViewBag.SortPrice = (sort == BookSortType.Price ? BookSortType.PriceDesc : BookSortType.Price); ViewBag.SortQuantity = (sort == BookSortType.Quantity ? BookSortType.QuantityDesc : BookSortType.Quantity); ViewBag.SortImgUrl = (sort == BookSortType.ImgUrl ? BookSortType.ImgUrlDesc : BookSortType.ImgUrl); ViewBag.SortIsActive = (sort == BookSortType.IsActive ? BookSortType.IsActiveDesc : BookSortType.IsActive); ViewBag.CurrentSort = sort; // Paging. pageNumber = (pageNumber ?? 1); int pageSize = 4; ViewBag.NumOfPages = bookBU.GetNumOfPages(pageSize); ViewBag.PageNumber = pageNumber; return(View(bookBU.GetList(sort, pageSize, pageNumber.Value))); }
public List <Book> GetList(BookSortType sort, int pageSize, int pageNumber) { return(bookDA.GetList(sort, pageSize, pageNumber)); }