// GET: ProductCategories/Details/5 public async Task <IActionResult> Details(string?productName) { if (productName == null) { return(NotFound()); } var findMatchingProduct = await _context.ProductCategories .Include(p => p.Category) .Include(p => p.Product) .FirstOrDefaultAsync(m => m.Product.Name == productName); DisplayProductViewModel productDetails = new DisplayProductViewModel { Product = findMatchingProduct.Product, Categories = _context.ProductCategories.Where(x => x.ProductID == findMatchingProduct.ProductID).Select(y => y.Category).ToList(), Selection = findMatchingProduct.Selection.ToString(), Image = _context.ProductCategories .Where(i => i.Product.Image.ProductID == findMatchingProduct.ProductID) .Select(img => img.Product.Image) .FirstOrDefault() }; if (productDetails == null) { return(NotFound()); } return(View(productDetails)); }
public HttpResponseMessage GetById(HttpRequestMessage request, int id) { var result = _daoDisplayProduct.GetById(id); DisplayProductViewModel DisplayProductViewModel = new DisplayProductViewModel(); DisplayProductViewModel.Image = result.Image; DisplayProductViewModel.id = result.Id; DisplayProductViewModel.Name = result.Name; return(request.CreateResponse(HttpStatusCode.OK, DisplayProductViewModel)); }
private List <DisplayProductViewModel> FilterProductsBySelection(string selectionOrder) { var appDbContext = _context.ProductCategories .Include(p => p.Product) .Include(c => c.Category) .AsNoTracking(); List <DisplayProductViewModel> getAllMatchingProducts = new List <DisplayProductViewModel>(); List <DisplayProductViewModel> getUniqueMatchingProducts = new List <DisplayProductViewModel>(); try { foreach (var product in appDbContext) { if (product.Selection.ToString() == selectionOrder) { DisplayProductViewModel dp = new DisplayProductViewModel(); dp.Product = product.Product; dp.Categories = appDbContext .Where(x => x.ProductID == product.Product.ID) .Select(x => x.Category) .ToList(); dp.Image = appDbContext .Where(x => x.Product.Image.ProductID == product.Product.ID) .Select(y => y.Product.Image) .FirstOrDefault(); dp.Selection = selectionOrder; getAllMatchingProducts.Add(dp); } } var distinctProducts = getAllMatchingProducts.GroupBy(x => x.Product.ID).Select(y => y.First()); foreach (var product in distinctProducts) { getUniqueMatchingProducts.Add(product); } return(getUniqueMatchingProducts.OrderBy(x => x.Product.Name).ToList()); } catch { throw new NotImplementedException(); } }
// Does the latest Image appear in this argumenmt? public static List <DisplayProductViewModel> GetAllLiveProducts(AppDbContext db) { List <DisplayProductViewModel> displayProds = new List <DisplayProductViewModel>(); var allProducts = db.Products; foreach (var item in allProducts) { // instantiate View Model DisplayProductViewModel displayPvm = new DisplayProductViewModel(); // Create list of Categories to store incoming Categories List <Category> associatedCategories = new List <Category>(); // Set new View Model Product to selected Product in the database displayPvm.Product = item; // Set new View Model Image to selected Product's related Image in the database var img = db.Images.Where(x => x.ProductID == item.ID).FirstOrDefault(); displayPvm.Image = img; // For each entry in the ProductCategory table see where the ProductID matches the selected Product ID and store the Selection value var selection = db.ProductCategories.Where(x => x.ProductID == item.ID).Select(y => y.Selection).FirstOrDefault(); displayPvm.Selection = selection.ToString(); // For each Categories with this database Product loop through all the assigned Categories and add them foreach (var t in db.ProductCategories) { if (t.ProductID == item.ID) { var cat = db.Categories.Where(x => x.CategoryID == t.CategoryID).FirstOrDefault(); associatedCategories.Add(cat); } } // Add all the Categories to the ViewModel Category displayPvm.Categories = associatedCategories; // Add new View Model to the ViewModel list displayProds.Add(displayPvm); } return(displayProds); }
public HttpResponseMessage Update(HttpRequestMessage request, DisplayProductViewModel sanPham) { if (sanPham.id != 0) { var result = _daoDisplayProduct.UpdateProduct(new SanPhamTrungBay() { Name = sanPham.Name, Id = sanPham.id, Image = sanPham.Image }); return(request.CreateResponse(HttpStatusCode.OK, result)); } else { var result = _daoDisplayProduct.Add(new SanPhamTrungBay() { Name = sanPham.Name, Image = sanPham.Image }); return(request.CreateResponse(HttpStatusCode.OK, result)); } }
public List <DisplayProductViewModel> FilterProductsByCategory(string categoryOrder) { var appDbContext = _context.ProductCategories .Include(p => p.Product) .Include(c => c.Category) .AsNoTracking(); try { int newCategoryIndex = FindCategoryIndexInTable(categoryOrder); List <DisplayProductViewModel> displayProds = new List <DisplayProductViewModel>(); List <Category> catList = new List <Category>(); var filteredList = appDbContext.Where(x => x.CategoryID == newCategoryIndex).ToList(); foreach (var i in filteredList) { DisplayProductViewModel dp = new DisplayProductViewModel(); dp.Product = i.Product; dp.Categories = appDbContext .Where(x => x.ProductID == i.ProductID) .Select(x => x.Category) .ToList(); dp.Selection = i.Selection.ToString(); dp.Image = appDbContext .Where(x => x.Product.Image.ProductID == i.ProductID) .Select(x => x.Product.Image).FirstOrDefault(); displayProds.Add(dp); } return(displayProds.ToList()); } catch (Exception) { return(null); } }
// GET: Products/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } DisplayProductViewModel dPvm = new DisplayProductViewModel(); var product = await _context.Products .Include(pc => pc.ProductCategories) .ThenInclude(c => c.Category) .AsNoTracking() .FirstOrDefaultAsync(m => m.ID == id); dPvm.Product = product; dPvm.Categories = product.ProductCategories .Where(x => x.ProductID == product.ID) .Select(c => c.Category) .ToList(); dPvm.Selection = product.ProductCategories .Where(x => x.ProductID == product.ID) .Select(c => c.Selection.ToString()) .FirstOrDefault(); dPvm.Image = product.ProductCategories .Where(i => i.Product.Image.ProductID == product.ID) .Select(img => img.Product.Image) .FirstOrDefault(); if (product == null) { return(NotFound()); } return(View(product)); }
private List <DisplayProductViewModel> ExtractDisplayProducts(List <Product> products) { var list = new List <DisplayProductViewModel>(); foreach (var product in products) { var model = new DisplayProductViewModel { Id = product.Id, Name = product.Name, Price = product.Price, Description = product.Description }; if (model.Description.Length > 50) { model.Description = $"{model.Description.Substring(0, 50)}..."; } list.Add(model); } return(list); }