public ActionResult UpdateProduct(int Id)
        {
            //Declare AuctionVM

            AuctionVM model;

            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                //Get the product

                Auction_Product product = db.Auction_Product.Find(Id);

                //make sure product exists
                if (product == null)
                {
                    return(Content("This product does not exist"));
                }

                //init model

                model = new AuctionVM(product);



                //get all gallery images

                model.GalleryImages = Directory.EnumerateFiles(Server.MapPath("~/Images/Uploads/Products/" + Id))
                                      .Select(fn => Path.GetFileName(fn));
            }
            return(View(model));
        }
示例#2
0
 public AuctionVM(Auction_Product product)
 {
     Id              = product.Id;
     Name            = product.Name;
     Description     = product.Description;
     CountryOfOrgin  = product.CountryOfOrgin;
     Details         = product.Details;
     StartingPrice   = product.StartingPrice;
     LastPrice       = product.LastPrice;
     UserId          = product.UserId;
     AdminId         = product.AdminId;
     Auction_Started = DateTime.Now;
     Auction_Ended   = product.Auction_Ended;
     ImageName       = product.ImageName;
     UserId          = product.UserId;
     AdminId         = product.AdminId;
 }
        public ActionResult DeleteProduct(int Id)
        {
            //Delete produts from DB

            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                Auction_Product product = db.Auction_Product.Find(Id);
                db.Auction_Product.Remove(product);
                db.SaveChanges();
            }

            //delete product folder
            var OriginalDirectorey = new DirectoryInfo(string.Format("{0}Images\\Uploads", Server.MapPath(@"\")));

            var PathString = Path.Combine(OriginalDirectorey.ToString(), "Products\\" + Id.ToString());

            if (Directory.Exists(PathString))
            {
                Directory.Delete(PathString, true);
            }

            return(RedirectToAction("ListOfAuctionProducts"));
        }
        public ActionResult AuctionDetailsProduct(int Id)
        {
            AuctionVM model;

            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                Auction_Product auction_Product = db.Auction_Product.Find(Id);

                if (auction_Product.LastPrice == null)
                {
                    auction_Product.LastPrice = auction_Product.StartingPrice;
                }
                else
                {
                    auction_Product.LastPrice = auction_Product.LastPrice;
                }


                //make sure product exists
                if (auction_Product == null)
                {
                    return(Content("That product does not exist"));
                }

                //init model

                model = new AuctionVM(auction_Product);


                //get all gallery images

                model.GalleryImages = Directory.EnumerateFiles(Server.MapPath("~/Images/Uploads/Products/" + Id))
                                      .Select(fn => Path.GetFileName(fn));
            }
            return(View(model));
        }
        public ActionResult Add_Auction_Product(AuctionVM model, HttpPostedFileBase file)
        {
            //check model state
            if (!ModelState.IsValid)
            {
                using (ApplicationDbContext db = new ApplicationDbContext())
                {
                    return(View(model));
                }
            }

            //declare product id
            int id;

            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                Auction_Product product = new Auction_Product();

                //product.ProductCode = model.ProductCode;
                product.Name            = model.Name;
                product.Description     = model.Description;
                product.CountryOfOrgin  = model.CountryOfOrgin;
                product.Details         = model.Details;
                product.StartingPrice   = model.StartingPrice;
                product.LastPrice       = model.LastPrice;
                product.AdminId         = User.Identity.GetUserId();
                product.Auction_Started = DateTime.Now;
                product.Auction_Ended   = model.Auction_Ended;
                db.Auction_Product.Add(product);
                db.SaveChanges();
                //get id
                id = product.Id;
            }

            TempData["SM"] = "You have addedd a product sussecfully";


            #region
            //Create necessary directiories

            var OriginalDirectorey = new DirectoryInfo(string.Format("{0}Images\\Uploads", Server.MapPath(@"\")));

            var PathString1 = Path.Combine(OriginalDirectorey.ToString(), "Products");
            var PathString2 = Path.Combine(OriginalDirectorey.ToString(), "Products\\" + id.ToString());
            var PathString3 = Path.Combine(OriginalDirectorey.ToString(), "Products\\" + id.ToString() + "\\Thumbs");
            var PathString4 = Path.Combine(OriginalDirectorey.ToString(), "Products\\" + id.ToString() + "\\Gallery");
            var PathString5 = Path.Combine(OriginalDirectorey.ToString(), "Products\\" + id.ToString() + "\\Gallery\\Thumbs");



            if (!Directory.Exists(PathString1))
            {
                Directory.CreateDirectory(PathString1);
            }


            if (!Directory.Exists(PathString2))
            {
                Directory.CreateDirectory(PathString2);
            }


            if (!Directory.Exists(PathString3))
            {
                Directory.CreateDirectory(PathString3);
            }


            if (!Directory.Exists(PathString4))
            {
                Directory.CreateDirectory(PathString4);
            }


            if (!Directory.Exists(PathString5))
            {
                Directory.CreateDirectory(PathString5);
            }


            //Create if a file was upload
            if (file != null && file.ContentLength > 0)
            {
                //Get file Extention
                string ext = file.ContentType.ToLower();


                if (ext != "image/jpg" &&
                    ext != "image/jpeg" &&
                    ext != "image/pjpeg" &&
                    ext != "image/gif" &&
                    ext != "image/x-png" &&
                    ext != "image/png")
                {
                    using (ApplicationDbContext db = new ApplicationDbContext())
                    {
                        ModelState.AddModelError("", "The Image was not uplaoded - wrong image extintion");
                        return(View(model));
                    }
                }

                string ImageName = file.FileName;

                using (ApplicationDbContext db = new ApplicationDbContext())
                {
                    Auction_Product prod = db.Auction_Product.Find(id);
                    prod.ImageName = ImageName;
                    db.SaveChanges();
                }

                //set original and thumb image pathss
                var path  = string.Format("{0}\\{1}", PathString2, ImageName);
                var path2 = string.Format("{0}\\{1}", PathString3, ImageName);

                //save original
                file.SaveAs(path);

                //create and save thumbs
                WebImage image = new WebImage(file.InputStream);

                image.Resize(200, 200);
                image.Save(path2);
            }
            #endregion
            //redirect
            return(RedirectToAction("ListOfAuctionProducts"));
        }
        public ActionResult UpdateProduct(AuctionVM model, HttpPostedFileBase file)
        {
            //get product id
            int id = model.Id;


            model.GalleryImages = Directory.EnumerateFiles(Server.MapPath("~/Images/Uploads/Products/" + id))
                                  .Select(fn => Path.GetFileName(fn));


            //check model state

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            //make sure product name isunique

            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                if (db.Auction_Product.Where(x => x.Id != id).Any(x => x.Name == model.Name))
                {
                    ModelState.AddModelError("", " Product name is taken Please Enter Another One!");
                    return(View(model));
                }
            }
            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                Auction_Product product = db.Auction_Product.Find(id);

                product.Name            = model.Name;
                product.Description     = model.Description;
                product.CountryOfOrgin  = model.CountryOfOrgin;
                product.Details         = model.Details;
                product.StartingPrice   = model.StartingPrice;
                product.LastPrice       = model.LastPrice;
                product.Auction_Started = DateTime.Now;
                product.Auction_Ended   = model.Auction_Ended;



                if (model.ImageName != null)
                {
                    product.ImageName = model.ImageName;
                }

                db.SaveChanges();
            }

            //set tempdata message
            TempData["MM"] = "Product Updated Please Reload The Page ";


            #region Image Upload
            //Create if a file was upload
            if (file != null && file.ContentLength > 0)
            {
                //Get file Extention
                string ext = file.ContentType.ToLower();


                if (ext != "image/jpg" &&
                    ext != "image/jpeg" &&
                    ext != "image/pjpeg" &&
                    ext != "image/gif" &&
                    ext != "image/x-png" &&
                    ext != "image/png")
                {
                    using (ApplicationDbContext db = new ApplicationDbContext())
                    {
                        ModelState.AddModelError("", "The Image was not uplaoded - wrong image extintion");
                        return(View(model));
                    }
                }


                var OriginalDirectorey = new DirectoryInfo(string.Format("{0}Images\\Uploads", Server.MapPath(@"\")));

                var PathString1 = Path.Combine(OriginalDirectorey.ToString(), "Products\\" + id.ToString());
                var PathString2 = Path.Combine(OriginalDirectorey.ToString(), "Products\\" + id.ToString() + "\\Thumbs");


                //Delete files from directories

                DirectoryInfo di1 = new DirectoryInfo(PathString1);
                DirectoryInfo di2 = new DirectoryInfo(PathString2);

                foreach (FileInfo file1 in di1.GetFiles())
                {
                    file1.Delete();
                }

                foreach (FileInfo file2 in di2.GetFiles())
                {
                    file2.Delete();
                }


                //save images name

                string imageName = file.FileName;

                using (ApplicationDbContext db = new ApplicationDbContext())
                {
                    Auction_Product product = db.Auction_Product.Find(id);
                    product.ImageName = imageName;
                    db.SaveChanges();
                }
                //save original and thumb images

                var path  = string.Format("{0}\\{1}", PathString1, imageName);
                var path2 = string.Format("{0}\\{1}", PathString2, imageName);

                //save original
                file.SaveAs(path);


                //create and save thumbs
                WebImage image = new WebImage(file.InputStream);

                image.Resize(200, 200);
                image.Save(path2);
            }
            #endregion
            //Redirect

            return(RedirectToAction(nameof(ListOfAuctionProducts)));
        }