public IActionResult Category(int Id) { var viewModel = new ProductsCategoryViewModel(); viewModel.Products = _dbContext.Products.Include(r => r.Category) .Where(r => r.Category.Id == Id) .Select(dbProd => new ProductViewModel { Id = dbProd.Id, Title = dbProd.Title, Description = dbProd.Description, Price = dbProd.Price, Category = dbProd.Category.Title }).ToList(); return(View(viewModel)); }
// GET: Products public async Task <IActionResult> Index(string productCategory, string searchString) { // Use LINQ to get list of genres. IQueryable <string> categoryQuery = from m in _context.Products orderby m.ProductCategory select m.ProductCategory; var products = from p in _context.Products select p; if (!String.IsNullOrEmpty(searchString)) { products = products.Where(s => s.ProductName.Contains(searchString)); } if (!String.IsNullOrEmpty(productCategory)) { if (productCategory.Contains(" ")) { productCategory = productCategory.Replace(' ', '_'); } products = products.Where(x => x.ProductCategory == productCategory); } var productsCategoryVM = new ProductsCategoryViewModel(); productsCategoryVM.categories = new SelectList(await categoryQuery.Distinct().ToListAsync()); foreach (SelectListItem s in productsCategoryVM.categories) { s.Text = s.Text.Replace('_', ' '); } productsCategoryVM.products = await products.ToListAsync(); return(View(productsCategoryVM)); }
public ProductsCategoryPage() { InitializeComponent(); BindingContext = new ProductsCategoryViewModel(Navigation); }