public ActionResult DeleteConfirmed(int id)
        {
            CategoriaRevista categoriaRevista = db.CategoriaRevista.Find(id);

            foreach (var item in categoriaRevista.SubCategoriaRevista)
            {
                db.Revista.RemoveRange(item.Revista);
            }
            db.SaveChanges();
            db.SubCategoriaRevista.RemoveRange(categoriaRevista.SubCategoriaRevista);
            db.SaveChanges();
            db.CategoriaRevista.Remove(categoriaRevista);
            db.SaveChanges();

            String folderPath = Server.MapPath("~/images/Revista/" + categoriaRevista.nombre + "/");

            try
            {
                if (Directory.Exists(folderPath))
                {
                    Directory.Delete(folderPath, true);
                }
            }
            catch
            {
            }

            return(RedirectToAction("Index"));
        }
        // GET: CategoriaRevistas/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CategoriaRevista categoriaRevista = db.CategoriaRevista.Find(id);

            if (categoriaRevista == null)
            {
                return(HttpNotFound());
            }
            return(View(categoriaRevista));
        }
        public ActionResult Create([Bind(Include = "id,nombre,urlimg")] CategoriaRevista categoriaRevista)
        {
            if (ModelState.IsValid)
            {
                string folderPath = "";
                string PathforDB  = "";
                string filename   = "";
                string savedfileName;
                string categoria = categoriaRevista.nombre;

                foreach (string file in Request.Files)
                {
                    HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
                    if (hpf.ContentLength == 0)
                    {
                        continue;
                    }

                    folderPath = Server.MapPath("~/images/Revista/" + categoria + "/");
                    PathforDB  = "/images/Revista/" + categoria + "/";

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

                    filename = string.Format("{0}-{1}",
                                             DateTime.Now.ToString("ddMMyyyyHHmmss"),
                                             Path.GetFileName(hpf.FileName));

                    savedfileName = folderPath + filename;

                    hpf.SaveAs(savedfileName);
                    categoriaRevista.urlimg = PathforDB + filename;
                }

                db.CategoriaRevista.Add(categoriaRevista);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(categoriaRevista));
        }
        public ActionResult Edit2([Bind(Include = "id,nombre,urlimg")] CategoriaRevista categoriaRevista)
        {
            if (ModelState.IsValid)
            {
                string folderPath    = "";
                string folderPathOld = "";
                string filePath      = "";
                string PathforDB     = "";
                string filename      = "";
                string savedfileName;
                string categoria    = categoriaRevista.nombre;
                string oldURL       = (from m in db.CategoriaRevista where m.id == categoriaRevista.id select m.urlimg).FirstOrDefault();
                string oldCategoria = (from m in db.CategoriaRevista where m.id == categoriaRevista.id select m.nombre).FirstOrDefault();
                folderPath    = Server.MapPath("~/images/Revista/" + categoria + "/");
                folderPathOld = Server.MapPath("~/images/Revista/" + oldCategoria + "/");
                filePath      = Server.MapPath("~" + oldURL);
                PathforDB     = "/images/Revista/" + categoria + "/";


                if (oldCategoria != categoria)
                {
                    Directory.Move(folderPathOld, folderPath);
                    oldURL = PathforDB + Path.GetFileName(filePath);
                    foreach (var item in db.SubCategoriaRevista.Where(m => m.id_categoria == categoriaRevista.id))
                    {
                        string subcategoria = item.nombre;
                        item.urlimg = "/images/Revista/" + categoria + "/" + subcategoria + "/" + Path.GetFileName(item.urlimg);
                        foreach (var item2 in item.Revista)
                        {
                            string edicion = item2.title;
                            item2.urlPdf   = "/images/Revista/" + categoria + "/" + subcategoria + "/" + edicion + "/" + Path.GetFileName(item2.urlPdf);
                            item2.urlfront = "/images/Revista/" + categoria + "/" + subcategoria + "/" + edicion + "/" + Path.GetFileName(item2.urlfront);

                            db.Entry(item2).State = EntityState.Modified;
                        }
                        db.Entry(item).State = EntityState.Modified;
                    }

                    filePath = Server.MapPath("~" + oldURL);
                }
                categoriaRevista.urlimg = oldURL;
                foreach (string file in Request.Files)
                {
                    HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
                    if (hpf.ContentLength == 0)
                    {
                        continue;
                    }


                    //Directory.Delete(folderPath, true);
                    if (!String.IsNullOrEmpty(oldURL))
                    {
                        if (System.IO.File.Exists(filePath))
                        {
                            System.IO.File.Delete(filePath);
                        }
                    }
                    if (!Directory.Exists(folderPath))
                    {
                        Directory.CreateDirectory(folderPath);
                    }

                    filename = string.Format("{0}-{1}",
                                             DateTime.Now.ToString("ddMMyyyyHHmmss"),
                                             Path.GetFileName(hpf.FileName));

                    savedfileName = folderPath + filename;

                    hpf.SaveAs(savedfileName);
                    categoriaRevista.urlimg = PathforDB + filename;
                }
                db.Entry(categoriaRevista).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(categoriaRevista));
        }