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