//Sayfa başı 7 tane ürün gösterilir.
        public ViewResult Listele(string kategori, int sayfa = 1)
        {
            //return View(depo.Urunler.OrderBy(p => p.UrunID).Skip((page - 1) * SayfabasiUrunSayisi).Take(SayfabasiUrunSayisi),
            //    SayfalamaBilgisi = new SayfalamaBilgisi
            //{
            //    CurrentPage = page,
            //    ItemsPerPage = SayfabasiUrunSayisi,
            //    TotalItems = depo.Urunler.Count()
            //});

            UrunListelemeViewModel model = new UrunListelemeViewModel
            {
                //Şimdi ürünleri alfabetik olarak sıralayayım
                Products   = depo.Urunler.Where(p => kategori == null || p.Kategori == kategori).OrderBy(p => p.Ad).Skip((sayfa - 1) * SayfabasiUrunSayisi).Take(SayfabasiUrunSayisi),
                PagingInfo = new SayfalamaBilgisi
                {
                    CurrentPage  = sayfa,
                    ItemsPerPage = SayfabasiUrunSayisi,
                    TotalItems   = kategori == null?
                                   depo.Urunler.Count() :
                                       depo.Urunler.Where(e => e.Kategori == kategori).Count()
                },
                CurrentCategory = kategori
            };

            return(View(model));
        }
예제 #2
0
        public void SayfalamaYapiyorMu()
        {
            //Test iptal edildi
            // Arrange
            Mock <IUrunDeposu> mock = new Mock <IUrunDeposu>();

            mock.Setup(m => m.Urunler).Returns(new Product[] {
                new Product {
                    UrunID = 1, Ad = "P1"
                },
                new Product {
                    UrunID = 2, Ad = "P2"
                },
                new Product {
                    UrunID = 3, Ad = "P3"
                },
                new Product {
                    UrunID = 4, Ad = "P4"
                },
                new Product {
                    UrunID = 5, Ad = "P5"
                }
            });
            UrunController controller = new UrunController(mock.Object);

            controller.SayfabasiUrunSayisi = 3;
            // Act
            //IEnumerable<Product> result =   (IEnumerable<Product>)controller.Listele(2).Model;

            UrunListelemeViewModel result = (UrunListelemeViewModel)controller.Listele(null, 2).Model;
            //Assert
            //Product[] prodArray = result.ToArray();
            //Assert.IsTrue(prodArray.Length == 2);
            //Assert.AreEqual(prodArray[0].Ad , "P4");
            //Assert.AreEqual(prodArray[1].Ad, "P5");
        }
예제 #3
0
        public void SayfalayiciViewModelGonderiliyorMu()
        {
            // Arrange
            Mock <IUrunDeposu> mock = new Mock <IUrunDeposu>();

            mock.Setup(m => m.Urunler).Returns(new Product[] {
                new Product {
                    UrunID = 1, Ad = "P1"
                },
                new Product {
                    UrunID = 2, Ad = "P2"
                },
                new Product {
                    UrunID = 3, Ad = "P3"
                },
                new Product {
                    UrunID = 4, Ad = "P4"
                },
                new Product {
                    UrunID = 5, Ad = "P5"
                }
            });
            // Arrange
            UrunController controller = new UrunController(mock.Object);

            controller.SayfabasiUrunSayisi = 3;
            // Act
            UrunListelemeViewModel result = (UrunListelemeViewModel)controller.Listele(null, 2).Model;
            // Assert
            SayfalamaBilgisi pageInfo = result.PagingInfo;

            Assert.AreEqual(pageInfo.CurrentPage, 2); // 2'ye eşit mi ?
            Assert.AreEqual(pageInfo.ItemsPerPage, 3);
            Assert.AreEqual(pageInfo.TotalItems, 5);
            Assert.AreEqual(pageInfo.TotalPages, 2);
        }