public IActionResult Index() { PhoneIndexViewModel phoneIndexViewModel = new PhoneIndexViewModel(); phoneIndexViewModel.Phones = new List <ProductShowPhoneInfoViewModel>(); foreach (var phone in _applicationDbContext.Products) { phoneIndexViewModel.Phones.Add (new ProductShowPhoneInfoViewModel { Id = phone?.Id, ProductName = phone?.ProductName, Image = phone.Image } ); } return(View(phoneIndexViewModel)); }
// GET: Shaurmas public async Task <IActionResult> Index( string name, double?priceFrom, double?priceTo, int?categoryId, int?companyId, int page = 1, SortPhones sortPhones = SortPhones.CompanyDesc) { IQueryable <Phone> phones = _context.Phones.Include(p => p.Category); if (!string.IsNullOrWhiteSpace(name)) { phones = phones.Where(s => s.Name.Contains(name)); } if (priceFrom.HasValue) { phones = phones.Where(s => s.Price >= priceFrom.Value); } if (priceTo.HasValue) { phones = phones.Where(s => s.Price <= priceTo.Value); } if (companyId.HasValue) { phones = phones.Where(s => s.CompanyId == companyId.Value); } if (categoryId.HasValue) { phones = phones.Where(s => s.CategoryId == categoryId.Value); } ViewBag.NameSort = sortPhones == SortPhones.NameAsc ? SortPhones.NameDesc : SortPhones.NameAsc; ViewBag.CompanySort = sortPhones == SortPhones.CompanyAsc ? SortPhones.CompanyDesc : SortPhones.CompanyAsc; ViewBag.CategorySort = sortPhones == SortPhones.CategotyAsc ? SortPhones.CategoryDesc : SortPhones.CategotyAsc; ViewBag.PriceSort = sortPhones == SortPhones.PriceAsc ? SortPhones.PriceDesc : SortPhones.PriceAsc; switch (sortPhones) { case SortPhones.NameAsc: phones = phones.OrderBy(s => s.Name); break; case SortPhones.NameDesc: phones = phones.OrderByDescending(s => s.Name); break; case SortPhones.PriceAsc: phones = phones.OrderBy(s => s.Price); break; case SortPhones.PriceDesc: phones = phones.OrderByDescending(s => s.Price); break; case SortPhones.CategotyAsc: phones = phones.OrderBy(s => s.Category.Name); break; case SortPhones.CategoryDesc: phones = phones.OrderByDescending(s => s.Category.Name); break; case SortPhones.CompanyAsc: phones = phones.OrderBy(s => s.Company.Name); break; case SortPhones.CompanyDesc: phones = phones.OrderByDescending(s => s.Company.Name); break; } int pageSize = 4; var count = await phones.CountAsync(); PageViewModel pageViewModel = new PageViewModel(count, page, pageSize); var items = await phones.Skip(((page - 1) * pageSize)).Take(pageSize).ToListAsync(); PhoneIndexViewModel model = new PhoneIndexViewModel() { Phones = items, Name = name, PageViewModel = pageViewModel, CompanyId = companyId, CategoryId = categoryId, PriceFrom = priceFrom, PriceTo = priceTo, Categories = new SelectList(_context.Categories, "Id", "Name"), Companies = new SelectList(_context.Companies, "Id", "Name") }; return(View(model)); }