コード例 #1
0
        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));
        }
コード例 #2
0
        // 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));
        }