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()));
        }
Пример #3
0
        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());
            }
        }