示例#1
0
        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));
        }
示例#2
0
        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");
        }