public void Can_Paginate() { Mock <IPartsRepository> mock = new Mock <IPartsRepository>(); mock.Setup(m => m.Parts).Returns(new List <Part> { new Part { PartId = 1, Name = "Part1" }, new Part { PartId = 2, Name = "Part2" }, new Part { PartId = 3, Name = "Part3" }, new Part { PartId = 4, Name = "Part4" }, new Part { PartId = 5, Name = "Part5" } }); PartsController controller = new PartsController(mock.Object); controller.pageSize = 3; PartsListViewModel result = (PartsListViewModel)controller.List(null, 2).Model; List <Part> parts = result.Parts.ToList(); Assert.IsTrue(parts.Count == 2); Assert.AreEqual(parts[0].Name, "Part4"); Assert.AreEqual(parts[1].Name, "Part5"); }
public IActionResult Index(int page = 1) { int pageSize = 5; List <PartViewModel> list = new List <PartViewModel>(); var parts = db.Parts; foreach (var part in parts) { list.Add(new PartViewModel { Id = part.partID, partName = part.partName, price = part.price, descriptionPart = part.descriptionPart }); } IQueryable <PartViewModel> filterList = list.AsQueryable(); var count = filterList.Count(); var items = filterList.Skip((page - 1) * pageSize). Take(pageSize).ToList(); PartsListViewModel model = new PartsListViewModel { PageViewModel = new PageViewModel(count, page, pageSize), Parts = items }; return(View(model)); }
public IActionResult PartsList(PartsListViewModel viewModel) { var parts = partsService.GetParts().Where(p => p.CategoryId == viewModel.CategoryId || viewModel.CategoryId == 0); var partsVM = new PartsListViewModel(); partsVM.Parts = new List <Database.Models.Part>(); partsVM.Parts.AddRange(parts); return(View(partsVM)); }
public IActionResult PartsList() { if (User.Identity.Name == null) { return(RedirectToPage("/Identity/Account/Login")); } else { var parts = partsService.GetParts(); var partsVM = new PartsListViewModel(); partsVM.Parts = new List <Database.Models.Part>(); partsVM.Parts.AddRange(parts); return(View(partsVM)); } }
public IActionResult All(string search = "", int page = 1) { if (string.IsNullOrEmpty(search)) { search = ""; } var totalParts = this.parts.Total(search); var allParts = new PartsListViewModel { Search = search, Parts = parts.AllParts(search, page, pageSize), CurrentPage = page, TotalPages = (int)Math.Ceiling(totalParts / (double)pageSize) }; return(View(allParts)); }
public ViewResult List(string cat, int page = 1) { PartsListViewModel model = new PartsListViewModel { Parts = repository.Parts .Where(b => cat == null || b.Category == cat) .OrderBy(part => part.PartId) .Skip((page - 1) * pageSize) .Take(pageSize), PagingInfo = new PagingInfo { CurrentPage = page, ItemsPerPage = pageSize, TotalItems = cat == null?repository.Parts.Count() : repository.Parts.Where(part => part.Category == cat).Count() }, CurrentCat = cat }; return(View(model)); }
public void Can_Send_Pagination_View_Model() { // Организация (arrange) Mock <IPartsRepository> mock = new Mock <IPartsRepository>(); mock.Setup(m => m.Parts).Returns(new List <Part> { new Part { PartId = 1, Name = "Part1" }, new Part { PartId = 2, Name = "Part2" }, new Part { PartId = 3, Name = "Part3" }, new Part { PartId = 4, Name = "Part4" }, new Part { PartId = 5, Name = "Part5" } }); PartsController controller = new PartsController(mock.Object); controller.pageSize = 3; // Действие (act) PartsListViewModel result = (PartsListViewModel)controller.List(null, 2).Model; PagingInfo pagingInfo = result.PagingInfo; Assert.AreEqual(pagingInfo.CurrentPage, 2); Assert.AreEqual(pagingInfo.ItemsPerPage, 3); Assert.AreEqual(pagingInfo.TotalItems, 5); Assert.AreEqual(pagingInfo.TotalPages, 2); }