Exemple #1
0
        public ViewResult List(string modelCategory, int page = 1)
        {
            var model = new IPhoneListViewModel
            {
                Phones = _repo.Get(p => modelCategory == null || p.Model == modelCategory)
                         .Skip((page - 1) * pageSize)
                         .Take(pageSize).ToList(),
                Pagination = new Pagination
                {
                    CurrentPage  = page,
                    ItemsPerPage = pageSize,
                    TotalItems   = _repo.Count
                },
                CurrentModel = modelCategory
            };

            return(View(model));
        }
Exemple #2
0
        public void Can_Send_Pagination_View_Model()
        {
            // Организация (arrange)
            Mock <IPhoneRepository> mock = new Mock <IPhoneRepository>();

            mock.Setup(m => m.Get()).Returns(new List <IPhone>
            {
                new IPhone {
                    Model = "IPhone 11"
                },
                new IPhone {
                    Model = "IPhone 12"
                },
                new IPhone {
                    Model = "IPhone 13"
                },
                new IPhone {
                    Model = "IPhone 14"
                },
                new IPhone {
                    Model = "IPhone 15"
                }
            });
            PhoneController controller = new PhoneController(mock.Object);

            controller.pageSize = 3;

            // Act
            IPhoneListViewModel result
                = (IPhoneListViewModel)controller.List(2).Model;

            // Assert
            Pagination pagination = result.Pagination;

            Assert.AreEqual(pagination.CurrentPage, 2);
            Assert.AreEqual(pagination.ItemsPerPage, 3);
            Assert.AreEqual(pagination.TotalItems, 5);
            Assert.AreEqual(pagination.TotalPages, 2);
        }