Beispiel #1
0
        public ActionResult UpdateProduct(int Id)
        {
            //Declare DonateVM

            DonationVM model;

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

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

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

                //init model

                model = new DonationVM(product);

                //make  a select list

                model.Categories = new SelectList(db.Donate_Category.ToList(), "Id", "Name");

                //get all gallery images

                model.GalleryImages = Directory.EnumerateFiles(Server.MapPath("~/Images/Uploads/Products/" + Id + "/Gallery/Thumbs"))
                                      .Select(fn => Path.GetFileName(fn));
            }
            return(View(model));
        }
Beispiel #2
0
 public DonationVM(Donate_Product product)
 {
     Id          = product.Id;
     Name        = product.Name;
     Description = product.Description;
     Date        = DateTime.Now;
     ImageName   = product.ImageName;
     AdminId     = product.AdminId;
     UserId      = product.UserId;
     CategoryId  = product.CategoryId;
 }
Beispiel #3
0
        public ActionResult DeleteProduct(int Id)
        {
            //Delete produts from DB

            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                Donate_Product product = db.Donate_Product.Find(Id);
                db.Donate_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("ListOfProducts"));
        }
Beispiel #4
0
        public ActionResult Add_Donate_Product(DonationVM model, HttpPostedFileBase file)
        {
            //check model state
            if (!ModelState.IsValid)
            {
                using (ApplicationDbContext db = new ApplicationDbContext())
                {
                    model.Categories = new SelectList(db.Donate_Category.ToList(), "Id", "Name");
                    return(View(model));
                }
            }
            //declare product id
            int id;

            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                Donate_Product product = new Donate_Product();
                //product.ProductCode = model.ProductCode;
                product.Name        = model.Name;
                product.Description = model.Description;

                product.CategoryId = model.CategoryId;
                product.Date       = DateTime.Now;
                product.AdminId    = User.Identity.GetUserId();


                db.Donate_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())
                    {
                        model.Categories = new SelectList(db.Donate_Category.ToList(), "Id", "Name");
                        ModelState.AddModelError("", "The Image was not uplaoded - wrong image extintion");
                        return(View(model));
                    }
                }

                string ImageName = file.FileName;

                using (ApplicationDbContext db = new ApplicationDbContext())
                {
                    Donate_Product prod = db.Donate_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(400, 400);
                image.Save(path2);
            }

            #endregion
            //redirect

            return(RedirectToAction("Add_Donate_Product"));
        }
Beispiel #5
0
        public ActionResult UpdateProduct(DonationVM model, HttpPostedFileBase file)
        {
            //get product id
            int id = model.Id;

            //populate categories selectlist and gallery images
            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                model.Categories = new SelectList(db.Donate_Category.ToList(), "Id", "Name");
            }
            model.GalleryImages = Directory.EnumerateFiles(Server.MapPath("~/Images/Uploads/Products/" + id + "/Gallery/Thumbs"))
                                  .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.Donate_Product.Where(x => x.Id != id).Any(x => x.Name == model.Name))
                {
                    ModelState.AddModelError("", "That product name is tacken!");
                    return(View(model));
                }
            }
            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                Donate_Product product = db.Donate_Product.Find(id);

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

                db.SaveChanges();
            }

            //set tempdata message
            TempData["SM"] = "You have Updated a product sussecfully";


            #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())
                    {
                        model.Categories = new SelectList(db.Donate_Category.ToList(), "Id", "Name");
                        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())
                {
                    Donate_Product product = db.Donate_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(400, 400);
                image.Save(path2);
            }


            #endregion

            //Redirect

            return(RedirectToAction(nameof(UpdateProduct)));
        }