public ActionResult New([Bind(Exclude = "ImageId,Image,Accepted")] ProductWithCategories newProduct, HttpPostedFileBase Image) { StateInitialisation(); int imageId = UploadAndGetImageId(Image); newProduct.ImageId = imageId; newProduct.UserId = User.Identity.GetUserId(); try { if (ModelState.IsValid) { newProduct.Categories = new List <Category>(); foreach (var selectedCategoryId in newProduct.SelectedCategoryIds) { Category category = db.Categories.Find(selectedCategoryId); newProduct.Categories.Add(category); } Product dbProduct = mapper.Map <ProductWithCategories, Product>(newProduct); db.Products.Add(dbProduct); db.SaveChanges(); TempData["Message"] = "Your request will be submited by admin"; return(RedirectToAction("Index")); } TempData["Message"] = "Product adding has been failed"; return(View(newProduct)); } catch (Exception) { TempData["Message"] = "Product adding has been failed"; return(View(newProduct)); } }
public ActionResult Edit(int id) { ProductWithCategories product = mapper.Map <Product, ProductWithCategories>(db.Products.Find(id)); StateInitialisation(product); return(View(product)); }
public RedirectToActionResult EditProduct(int ProductId, ProductWithCategories newCat) { newCat.Association.ProductId = ProductId; dbContext.Add(newCat.Association); dbContext.SaveChanges(); return(RedirectToAction("ProductWithCats", new{ ProductId = ProductId })); }
public IEnumerable <ProductWithCategories> GetAllProduct() { var res = this.db.Products.Include("Categories"); List <ProductWithCategories> prodWithCategories = new List <ProductWithCategories>(); foreach (var product in res) { ProductWithCategories tempProduct = new ProductWithCategories(); tempProduct.Title = product.Title; tempProduct.Price = product.Price; tempProduct.Content = product.Content; foreach (var categories in product.Categories) { tempProduct.Categories.Add(categories.Name); tempProduct.SelectCategories.Add(new SelectListItem { Text = categories.Name, Value = categories.Name }); } prodWithCategories.Add(tempProduct); } return(prodWithCategories); }
public int[] GetSelectedCategories(ProductWithCategories product) { var categories = new List <int>(); foreach (var category in product.Categories) { categories.Add(category.Id); } return(categories.ToArray()); }
public ActionResult New() { if (TempData.ContainsKey("Message")) { ViewBag.Message = TempData["Message"].ToString(); } ProductWithCategories product = mapper.Map <Product, ProductWithCategories>(new Product()); StateInitialisation(); return(View(product)); }
public ProductWithCategories ListOfCatsForProductViewModel(int id) { ProductWithCategories PWC = new ProductWithCategories(); PWC.CurrentProduct = dbContext.Products .Include(p => p.CategoryAssociation) .ThenInclude(pc => pc.Category) .FirstOrDefault(p => p.ProductId == id); PWC.ListOfCategories = dbContext.Categories .Include(c => c.ProductAssociation) .ThenInclude(cp => cp.Product) .Where(c => !PWC.CurrentProduct.CategoryAssociation.Select(cp => cp.Category).Contains(c)) .ToList(); return(PWC); }
public ActionResult Edit(int id, ProductWithCategories requestProduct) { Product product = db.Products.Find(id); if (IsOwner(product.UserId) || User.IsInRole("Admin")) { StateInitialisation(); try { if (TryUpdateModel(product)) { product = mapper.Map <ProductWithCategories, Product>(requestProduct); product.Categories = new Collection <Category>(); foreach (var selectedCategoryId in requestProduct.SelectedCategoryIds) { Category category = db.Categories.Find(selectedCategoryId); product.Categories.Add(category); } db.SaveChanges(); TempData["Message"] = "Product has been successfully changed"; return(RedirectToAction("Index")); } TempData["Message"] = "Product editing has been failed"; return(View(requestProduct)); } catch (Exception) { TempData["Message"] = "Product editing has been failed"; return(View(requestProduct)); } } else { TempData["Message"] = "You don't have permission to change this product"; return(RedirectToAction("Index")); } }
public void StateInitialisation(ProductWithCategories product) { StateInitialisation(); product.SelectedCategoryIds = GetSelectedCategories(product); }
public ViewResult ProductWithCats(int ProductId) { ProductWithCategories viewModel = ListOfCatsForProductViewModel(ProductId); return(View("ProductWithCats", viewModel)); }