public ViewResult List(string category, int page = 1) { CakeListView model = new CakeListView { Cakes = cakeRepository.Cakes .Where(c => category == null || c.Category == category) .OrderBy(cake => cake.Id) .Skip((page - 1) * pageSize) .Take(pageSize), PagesInfo = new PageInfo { CurrentPage = page, ItemsPerPage = pageSize, TotalItems = category == null? //??? cakeRepository.Cakes.Count() : cakeRepository.Cakes.Where(cake => cake.Category == category) .Count() }, CurrentCategory = category }; return(View(model)); }
public void Can_Paginate() { //Мокаем данные Mock <ICakeRepository> mock = new Mock <ICakeRepository>(); mock.Setup(m => m.Cakes).Returns(new List <Cake> { new Cake { Id = 1, Name = "Cake1" }, new Cake { Id = 2, Name = "Cake2" }, new Cake { Id = 3, Name = "Cake3" }, new Cake { Id = 4, Name = "Cake4" }, new Cake { Id = 5, Name = "Cake5" }, }); CakeController controller = new CakeController(mock.Object); controller.pageSize = 3; //action CakeListView result = (CakeListView)controller.List(null, 2).Model; //asserts List <Cake> cakes = result.Cakes.ToList(); Assert.IsTrue(cakes.Count() == 2); Assert.AreEqual(cakes[0].Name, "Cake4"); Assert.AreEqual(cakes[1].Name, "Cake5"); }