public ActionResult Edit(int id, ProductEditCreateDto _product) { try { if (ModelState.IsValid) { var imageRepository = _uow.GetGenericRepository <ImageUri>(); imageRepository.RemoveIf(x => x.ProductId == id); foreach (var uri in _product.ImageUris) { if (!String.IsNullOrEmpty(uri)) { imageRepository.Add(new ImageUri() { ProductId = id, Uri = uri }); } } var distRepo = _uow.GetGenericRepository <Distributor>(); var distributor = new Distributor(); if (!String.IsNullOrEmpty(_product.DistributorInfo)) { distributor.Info = _product.DistributorInfo; } distRepo.Add(distributor); _uow.Commit(); var productRepository = _uow.GetGenericRepository <Product>(); var product = productRepository.GetById(id); product.Name = _product.Name; product.Category = _product.Category; product.Price = _product.Price; product.Quantity = _product.Quantity; product.DiscountedPrice = _product.DiscountedPrice; product.WarrantyStatus = _product.WarrantyStatus; product.ModelNumber = _product.ModelNumber; product.DescriptionMain = product.DescriptionMain; product.DescriptionExtra = _product.DescriptionExtra; product.DistributorId = distributor.Id; productRepository.Update(product); _uow.Commit(); return(RedirectToAction("Edit", new{ id = id })); } return(View()); // error message should be returned. } catch { return(View()); } }
// GET: ProductManager/Edit/5 public ActionResult Edit(int id) { var product = _uow.GetGenericRepository <Product>().GetById(id); var distributor = _uow.GetGenericRepository <Distributor>() .FirstOrDefault(x => x.Id == product.DistributorId); var images = _uow.GetGenericRepository <ImageUri>().Find(x => x.ProductId == id).Take(4).ToList(); var imageUris = new string[] { "", "", "", "" }; for (int i = 0; i < images.Count; i++) { imageUris[i] = images[i].Uri; } // TODO: delete imageUris fetched to prevent ... if (product != null) { var model = new ProductEditCreateDto() { ProductId = product.Id, Name = product.Name, Price = product.Price, DiscountedPrice = product.DiscountedPrice, ModelNumber = product.ModelNumber, Quantity = product.Quantity, WarrantyStatus = product.WarrantyStatus, DescriptionMain = product.DescriptionMain, DescriptionExtra = product.DescriptionExtra, DistributorInfo = distributor?.Info ?? "", ImageUris = imageUris, /*new string[] * { * "https://pbs.twimg.com/media/ENL2osHX0AAE1LW?format=jpg&name=900x900", * "https://pbs.twimg.com/media/ENL2osHX0AAE1LW?format=jpg&name=900x900", * "https://pbs.twimg.com/media/ENL2osHX0AAE1LW?format=jpg&name=900x900", * "https://pbs.twimg.com/media/ENL2osHX0AAE1LW?format=jpg&name=900x900" * }, */ Category = product.Category }; return(View(model)); } return(View(new ProductEditCreateDto())); }
public ActionResult Edit(int id, ProductEditCreateDto _product) { try { if (ModelState.IsValid) { var distRepo = _uow.GetGenericRepository <Distributor>(); var distributor = new Distributor(); if (!String.IsNullOrEmpty(_product.DistributorInfo)) { distributor.Info = _product.DistributorInfo; } distRepo.Add(distributor); _uow.Commit(); var productRepository = _uow.GetGenericRepository <Product>(); var product = productRepository.GetById(id); product.Name = _product.Name; product.Category = _product.Category; product.Price = _product.Price; product.Quantity = _product.Quantity; product.DiscountedPrice = _product.DiscountedPrice; product.WarrantyStatus = _product.WarrantyStatus; product.ModelNumber = _product.ModelNumber; product.DescriptionMain = product.DescriptionMain; product.DescriptionExtra = _product.DescriptionExtra; product.DistributorId = distributor.Id; productRepository.Update(product); _uow.Commit(); var repo = _uow.GetGenericRepository <ApplicationUser>(); var users = repo.GetAll(); //send email notification var apiKey = _configuration.GetSection("SENDGRID_API_KEY").Value; var client = new SendGridClient(apiKey); var from = new EmailAddress("*****@*****.**", "Sales Manager"); // user DTO to get list of all users List <EmailAddress> tos = new List <EmailAddress>(); foreach (var user in users) { tos.Add(new EmailAddress(user.Email)); } var subject = "The Product" + product.Id.ToString() + "'s price has been updated to : " + product.Price.ToString(); var htmlContent = "<strong>Please check out our website with updated prices on products!</strong>"; var displayRecipients = false; // set this to true if you want recipients to see each others mail id var msg = MailHelper.CreateSingleEmailToMultipleRecipients(from, tos, subject, "", htmlContent, displayRecipients); var response = client.SendEmailAsync(msg); //var response = await client.SendEmailAsync(msg); return(RedirectToAction("Edit", new { id = id })); } return(View()); // error message should be returned. } catch { return(View()); } }