示例#1
0
        public ViewResult getListPhones(string category)
        {
            string _category           = category;
            IEnumerable <Phone> phones = null;
            string currentCategory     = "";

            if (string.IsNullOrEmpty(category))
            {
                phones = _allPhones.Phones.OrderBy(i => i.Id);
            }
            else
            {
                if (string.Equals("Iphone", category, StringComparison.OrdinalIgnoreCase))
                {
                    phones = _allPhones.Phones.Where(i => i.Category.CategoryName.Equals("Iphone")).OrderBy(i => i.Id);
                }
                if (string.Equals("Android", category, StringComparison.OrdinalIgnoreCase))
                {
                    phones = _allPhones.Phones.Where(i => i.Category.CategoryName.Equals("Android")).OrderBy(i => i.Id);
                }

                currentCategory = _category;
            }

            var phoneObj = new PhonesListViewModel {
                AllPhones       = phones,
                CurrentCategory = currentCategory
            };

            ViewBag.Title = "Page with Phones";

            return(View(phoneObj));
        }
示例#2
0
        public void Can_Paginate()
        {
            Mock <IPhoneRepository> mock = new Mock <IPhoneRepository>();

            mock.Setup(m => m.Phones).Returns(new List <Phone>
            {
                new Phone {
                    PhoneId = 1, Mark = "Sony1"
                },
                new Phone {
                    PhoneId = 2, Mark = "Sony2"
                },
                new Phone {
                    PhoneId = 3, Mark = "Sony3"
                },
                new Phone {
                    PhoneId = 4, Mark = "Sony4"
                },
                new Phone {
                    PhoneId = 5, Mark = "Sony5"
                }
            });

            PhonesController controller = new PhonesController(mock.Object);

            controller.pageSize = 3;

            PhonesListViewModel result = (PhonesListViewModel)controller.List(null, 2).Model;

            List <Phone> phones = result.Phones.ToList();

            Assert.IsTrue(phones.Count == 2);
            Assert.AreEqual(phones[0].Mark, "Sony4");
            Assert.AreEqual(phones[1].Mark, "Sony5");
        }
        public ViewResult List()
        {
            ViewBag.Title = "Страница с смартфонами";
            PhonesListViewModel obj = new PhonesListViewModel();

            obj.AllPhones     = _allPhones.phones;
            obj.PhoneCategory = "Смартфоны";
            return(View(obj));
        }
示例#4
0
        public void Can_Send_Pagination_View_Model()
        {
            // Организация (arrange)
            Mock <IPhonerepository> mock = new Mock <IPhonerepository>();

            mock.Setup(m => m.Phones).Returns(new List <Phone>
            {
                new Phone {
                    PhoneId = 1, Name = "Phone1"
                },
                new Phone {
                    PhoneId = 2, Name = "Phone2"
                },
                new Phone {
                    PhoneId = 3, Name = "Phone3"
                },
                new Phone {
                    PhoneId = 4, Name = "Phone4"
                },
                new Phone {
                    PhoneId = 5, Name = "Phone5"
                }
            });
            PhoneController controller = new PhoneController(mock.Object);

            controller.pageSize = 3;

            // Act
            PhonesListViewModel result
                = (PhonesListViewModel)controller.List(null, 2).Model;

            // Assert
            PagingInfo pageInfo = result.PagingInfo;

            Assert.AreEqual(pageInfo.CurrentPage, 2);
            Assert.AreEqual(pageInfo.ItemsPerPage, 3);
            Assert.AreEqual(pageInfo.TotalItems, 5);
            Assert.AreEqual(pageInfo.TotalPages, 2);
        }
示例#5
0
        public ViewResult List(string category, int page = 1)
        {
            PhonesListViewModel model = new PhonesListViewModel
            {
                Phones = repository.Phones
                         .Where(b => category == null || b.Category == category)
                         .OrderBy(phone => phone.PhoneId)
                         .Skip((page - 1) * pageSize)
                         .Take(pageSize),
                PagingInfo = new PagingInfo
                {
                    CurrentPage  = page,
                    ItemsPerPage = pageSize,
                    TotalItems   = category == null?
                                   repository.Phones.Count() :
                                       repository.Phones.Where(phone => phone.Category == category).Count()
                },
                CurrentCategory = category
            };

            return(View(model));
        }
示例#6
0
     public ActionResult Filtr(string position)
     {
         IQueryable<Phone> phones = db.Phones;
     if (!String.IsNullOrEmpty(position) && !position.Equals("Все"))
     {
         phones = phones.Where(p => p.Model == position);
     }
     List<Phone> teams = db.Phones.ToList();
     teams.Insert(0, new Phone { Model = "Все", Id = 0 });
     PhonesListViewModel plvm = new PhonesListViewModel
     {
         Phones=phones.ToList(),
         Teams = new SelectList(teams, "Id", "Model"),
         Models = new SelectList(new List<string>()
         {
             "Все",
             "Модель",
             "Производитель"
         })
     };
     return View(plvm);
 }
示例#7
0
        public void Can_Paginate()
        {
            //Arrange
            Mock <IPhoneRepository> mock = new Mock <IPhoneRepository>();

            mock.Setup(m => m.Phones).Returns(new List <Phone>
            {
                new Phone {
                    PhoneId = 1, Name = "Phone1"
                },
                new Phone {
                    PhoneId = 2, Name = "Phone2"
                },
                new Phone {
                    PhoneId = 3, Name = "Phone3"
                },
                new Phone {
                    PhoneId = 4, Name = "Phone4"
                },
                new Phone {
                    PhoneId = 5, Name = "Phone5"
                }
            });
            PhoneController controller = new PhoneController(mock.Object);

            controller.pageSize = 3;

            //Act
            PhonesListViewModel result = (PhonesListViewModel)controller.List(null, 2).Model;

            //Assert
            List <Phone> phones = result.Phones.ToList();

            Assert.IsTrue(phones.Count == 2);
            Assert.AreEqual(phones[0].Name, "Phone4");
            Assert.AreEqual(phones[1].Name, "Phone5");
        }
示例#8
0
        public void Can_Send_Pagination_View_Model()
        {
            Mock <IPhoneRepository> mock = new Mock <IPhoneRepository>();

            mock.Setup(m => m.Phones).Returns(new List <Phone>
            {
                new Phone {
                    PhoneId = 1, Mark = "Sony1"
                },
                new Phone {
                    PhoneId = 2, Mark = "Sony2"
                },
                new Phone {
                    PhoneId = 3, Mark = "Sony3"
                },
                new Phone {
                    PhoneId = 4, Mark = "Sony4"
                },
                new Phone {
                    PhoneId = 5, Mark = "Sony5"
                }
            });

            PhonesController controller = new PhonesController(mock.Object);

            controller.pageSize = 3;

            PhonesListViewModel result = (PhonesListViewModel)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);
        }