public ViewResult List(string type, string orderBy, bool?byAsc, int page = 1) { type = String.IsNullOrEmpty(type) ? null : type; var sweets = String.IsNullOrEmpty(type) ? repository.Sweets : repository.Sweets.Where(s => s.Type == null || s.Type == type); switch (orderBy) { case "name": sweets = !byAsc.HasValue || byAsc.Value.Equals(true) ? sweets.OrderBy(x => x.Name) : sweets.OrderByDescending(x => x.Name); break; case "price": sweets = !byAsc.HasValue || byAsc.Value.Equals(true) ? sweets.OrderBy(x => x.Price) : sweets.OrderByDescending(x => x.Price); break; default: sweets = sweets.OrderBy(x => x.SweetId); break; } SweetsListViewModel model = new SweetsListViewModel { Sweets = sweets.Skip((page - 1) * pageSize).Take(pageSize), PagingInfo = new PagingInfo { CurrentPage = page, ItemsPerPage = pageSize, TotalItems = type == null? repository.Sweets.Count() : repository.Sweets.Where(sweet => sweet.Type == type).Count() }, CurrentType = type, CurrentOrderBy = orderBy, CurrentByAsc = byAsc, }; return(View(model)); }
public void Can_Send_Pagination_View_Model() { //Організація (arrange) Mock <ISweetRepository> mock = new Mock <ISweetRepository>(); mock.Setup(m => m.Sweets).Returns(new List <Sweet> { new Sweet { SweetId = 1, Name = "Sweet1" }, new Sweet { SweetId = 2, Name = "Sweet2" }, new Sweet { SweetId = 3, Name = "Sweet3" }, new Sweet { SweetId = 4, Name = "Sweet4" }, new Sweet { SweetId = 5, Name = "Sweet5" }, new Sweet { SweetId = 6, Name = "Sweet6" }, new Sweet { SweetId = 7, Name = "Sweet7" }, new Sweet { SweetId = 8, Name = "Sweet8" }, new Sweet { SweetId = 9, Name = "Sweet9" }, new Sweet { SweetId = 10, Name = "Sweet10" }, new Sweet { SweetId = 11, Name = "Sweet11" }, new Sweet { SweetId = 12, Name = "Sweet12" }, new Sweet { SweetId = 13, Name = "Sweet13" }, new Sweet { SweetId = 14, Name = "Sweet14" }, new Sweet { SweetId = 15, Name = "Sweet15" }, new Sweet { SweetId = 16, Name = "Sweet16" }, new Sweet { SweetId = 17, Name = "Sweet17" }, new Sweet { SweetId = 18, Name = "Sweet18" }, new Sweet { SweetId = 19, Name = "Sweet19" }, new Sweet { SweetId = 20, Name = "Sweet20" }, new Sweet { SweetId = 21, Name = "Sweet21" }, new Sweet { SweetId = 22, Name = "Sweet22" }, new Sweet { SweetId = 23, Name = "Sweet23" }, new Sweet { SweetId = 24, Name = "Sweet24" }, new Sweet { SweetId = 25, Name = "Sweet25" }, new Sweet { SweetId = 26, Name = "Sweet26" }, new Sweet { SweetId = 27, Name = "Sweet27" }, new Sweet { SweetId = 28, Name = "Sweet28" }, new Sweet { SweetId = 29, Name = "Sweet29" }, new Sweet { SweetId = 30, Name = "Sweet30" }, new Sweet { SweetId = 31, Name = "Sweet31" }, new Sweet { SweetId = 32, Name = "Sweet32" }, new Sweet { SweetId = 33, Name = "Sweet33" }, new Sweet { SweetId = 34, Name = "Sweet34" }, new Sweet { SweetId = 35, Name = "Sweet35" }, new Sweet { SweetId = 36, Name = "Sweet36" }, new Sweet { SweetId = 37, Name = "Sweet37" }, new Sweet { SweetId = 38, Name = "Sweet38" }, new Sweet { SweetId = 39, Name = "Sweet39" }, new Sweet { SweetId = 40, Name = "Sweet40" }, new Sweet { SweetId = 41, Name = "Sweet41" }, new Sweet { SweetId = 42, Name = "Sweet42" }, new Sweet { SweetId = 43, Name = "Sweet43" }, new Sweet { SweetId = 44, Name = "Sweet44" }, new Sweet { SweetId = 45, Name = "Sweet45" }, new Sweet { SweetId = 46, Name = "Sweet46" }, new Sweet { SweetId = 47, Name = "Sweet47" }, new Sweet { SweetId = 48, Name = "Sweet48" }, new Sweet { SweetId = 49, Name = "Sweet49" }, new Sweet { SweetId = 50, Name = "Sweet50" }, new Sweet { SweetId = 51, Name = "Sweet51" }, new Sweet { SweetId = 52, Name = "Sweet52" }, new Sweet { SweetId = 53, Name = "Sweet53" }, new Sweet { SweetId = 54, Name = "Sweet54" }, new Sweet { SweetId = 55, Name = "Sweet55" }, new Sweet { SweetId = 56, Name = "Sweet56" }, new Sweet { SweetId = 57, Name = "Sweet57" }, new Sweet { SweetId = 58, Name = "Sweet58" }, new Sweet { SweetId = 59, Name = "Sweet59" }, new Sweet { SweetId = 60, Name = "Sweet60" }, new Sweet { SweetId = 61, Name = "Sweet61" }, new Sweet { SweetId = 62, Name = "Sweet62" }, new Sweet { SweetId = 63, Name = "Sweet63" }, new Sweet { SweetId = 64, Name = "Sweet64" }, new Sweet { SweetId = 65, Name = "Sweet65" } }); SweetsController controller = new SweetsController(mock.Object); controller.pageSize = 4; //Дія (act) SweetsListViewModel result = (SweetsListViewModel)controller.List(null, 16).Model; PagingInfo pagingInfo = result.PagingInfo; Assert.AreEqual(pagingInfo.CurrentPage, 16); Assert.AreEqual(pagingInfo.ItemsPerPage, 4); Assert.AreEqual(pagingInfo.TotalItems, 65); Assert.AreEqual(pagingInfo.TotalPages, 17); }
public void Can_Paginate() { //Організація (arrange) Mock <ISweetRepository> mock = new Mock <ISweetRepository>(); mock.Setup(m => m.Sweets).Returns(new List <Sweet> { new Sweet { SweetId = 1, Name = "Sweet1" }, new Sweet { SweetId = 2, Name = "Sweet2" }, new Sweet { SweetId = 3, Name = "Sweet3" }, new Sweet { SweetId = 4, Name = "Sweet4" }, new Sweet { SweetId = 5, Name = "Sweet5" }, new Sweet { SweetId = 6, Name = "Sweet6" }, new Sweet { SweetId = 7, Name = "Sweet7" }, new Sweet { SweetId = 8, Name = "Sweet8" }, new Sweet { SweetId = 9, Name = "Sweet9" }, new Sweet { SweetId = 10, Name = "Sweet10" }, new Sweet { SweetId = 11, Name = "Sweet11" }, new Sweet { SweetId = 12, Name = "Sweet12" }, new Sweet { SweetId = 13, Name = "Sweet13" }, new Sweet { SweetId = 14, Name = "Sweet14" }, new Sweet { SweetId = 15, Name = "Sweet15" }, new Sweet { SweetId = 16, Name = "Sweet16" }, new Sweet { SweetId = 17, Name = "Sweet17" }, new Sweet { SweetId = 18, Name = "Sweet18" }, new Sweet { SweetId = 19, Name = "Sweet19" }, new Sweet { SweetId = 20, Name = "Sweet20" }, new Sweet { SweetId = 21, Name = "Sweet21" }, new Sweet { SweetId = 22, Name = "Sweet22" }, new Sweet { SweetId = 23, Name = "Sweet23" }, new Sweet { SweetId = 24, Name = "Sweet24" }, new Sweet { SweetId = 25, Name = "Sweet25" }, new Sweet { SweetId = 26, Name = "Sweet26" }, new Sweet { SweetId = 27, Name = "Sweet27" }, new Sweet { SweetId = 28, Name = "Sweet28" }, new Sweet { SweetId = 29, Name = "Sweet29" }, new Sweet { SweetId = 30, Name = "Sweet30" }, new Sweet { SweetId = 31, Name = "Sweet31" }, new Sweet { SweetId = 32, Name = "Sweet32" }, new Sweet { SweetId = 33, Name = "Sweet33" }, new Sweet { SweetId = 34, Name = "Sweet34" }, new Sweet { SweetId = 35, Name = "Sweet35" }, new Sweet { SweetId = 36, Name = "Sweet36" }, new Sweet { SweetId = 37, Name = "Sweet37" }, new Sweet { SweetId = 38, Name = "Sweet38" }, new Sweet { SweetId = 39, Name = "Sweet39" }, new Sweet { SweetId = 40, Name = "Sweet40" }, new Sweet { SweetId = 41, Name = "Sweet41" }, new Sweet { SweetId = 42, Name = "Sweet42" }, new Sweet { SweetId = 43, Name = "Sweet43" }, new Sweet { SweetId = 44, Name = "Sweet44" }, new Sweet { SweetId = 45, Name = "Sweet45" }, new Sweet { SweetId = 46, Name = "Sweet46" }, new Sweet { SweetId = 47, Name = "Sweet47" }, new Sweet { SweetId = 48, Name = "Sweet48" }, new Sweet { SweetId = 49, Name = "Sweet49" }, new Sweet { SweetId = 50, Name = "Sweet50" }, new Sweet { SweetId = 51, Name = "Sweet51" }, new Sweet { SweetId = 52, Name = "Sweet52" }, new Sweet { SweetId = 53, Name = "Sweet53" }, new Sweet { SweetId = 54, Name = "Sweet54" }, new Sweet { SweetId = 55, Name = "Sweet55" }, new Sweet { SweetId = 56, Name = "Sweet56" }, new Sweet { SweetId = 57, Name = "Sweet57" }, new Sweet { SweetId = 58, Name = "Sweet58" }, new Sweet { SweetId = 59, Name = "Sweet59" }, new Sweet { SweetId = 60, Name = "Sweet60" }, new Sweet { SweetId = 61, Name = "Sweet61" }, new Sweet { SweetId = 62, Name = "Sweet62" }, new Sweet { SweetId = 63, Name = "Sweet63" }, new Sweet { SweetId = 64, Name = "Sweet64" }, new Sweet { SweetId = 65, Name = "Sweet65" } }); SweetsController controller = new SweetsController(mock.Object); controller.pageSize = 4; //Дія (act) SweetsListViewModel result = (SweetsListViewModel)controller.List(null, 17).Model; //Ствердження (assert) List <Sweet> sweets = result.Sweets.ToList(); Assert.IsTrue(sweets.Count == 1); Assert.AreEqual(sweets[0].Name, "Sweet65"); }