public ActionResult DodajProdukt() { ProduktyVM model = new ProduktyVM(); using (Db db = new Db()) { model.Kategorie = new SelectList(db.Kategorie.ToList(), "Id", "Nazwa"); } return(View(model)); }
public ActionResult EdycjaProduktu(int id) { //Deklaruje produktVM ProduktyVM model; //Pobieram produkt using (Db db = new Db()) { ProduktyDTO dto = db.Produkty.Find(id); if (dto == null)// Sprawdzam czy istnieje { return(Content("Taki produkt nie istnieje")); } model = new ProduktyVM(dto); // Tworze select list model.Kategorie = new SelectList(db.Kategorie.ToList(), "Id", "Nazwa"); //Pobieram wszystkie zdjecia z galerii model.GaleriaZdjecia = Directory.EnumerateFiles(Server.MapPath("~/Zdjecia/Uploads/Produkty/" + id + "/Galeria/Thumbs")).Select(fn => Path.GetFileName(fn)); } //Zwracam view model return(View(model)); }
[ActionName("produkt-detail")] // metoda nazywa sie ProductDetails ale mapuja ja na product-details public ActionResult ProductDetails(string name) { //Deklaruje DTO aby wywolac konstruktor VM ProduktyVM modelVM; ProduktyDTO dto; int id = 0; using (Db db = new Db()) { if (!db.Produkty.Any(x => x.Slug.Equals(name))) // jesli zaden produkt nie pasuje { return(RedirectToAction("Index", "Shop")); //powracam do metody Index kontrolera SHop } dto = db.Produkty.Where(x => x.Slug == name).FirstOrDefault(); id = dto.Id; modelVM = new ProduktyVM(dto); modelVM.GaleriaZdjecia = Directory.EnumerateFiles(Server.MapPath("~/Zdjecia/Uploads/Produkty/" + id + "/Galeria/Thumbs")).Select(fn => Path.GetFileName(fn)); } return(View("ProductDetails", modelVM)); }
public ActionResult EdycjaProduktu(ProduktyVM model, HttpPostedFileBase file) { //Get produkt ID int id = model.Id; //Populacja kategorii select list oraz zdjec galerii using (Db db = new Db()) { //Upewnij sie ze nazwa produktu jest unikatowa model.Kategorie = new SelectList(db.Kategorie.ToList(), "Id", "Nazwa"); } model.GaleriaZdjecia = Directory.EnumerateFiles(Server.MapPath("~/Zdjecia/Uploads/Produkty/" + id + "/Galeria/Thumbs")).Select(fn => Path.GetFileName(fn)); //Check model errors if (!ModelState.IsValid) { return(View(model)); } //Sprawdzam czy nazwa produktu jest unikatowa using (Db db = new Db()) { if (db.Produkty.Where(x => x.Id != id).Any(x => x.Nazwa == model.Nazwa)) { ModelState.AddModelError("", "Nazwa produktu zostala wybrana"); return(View(model)); } } // Update produkt using (Db db = new Db()) { ProduktyDTO dto = db.Produkty.Find(id); dto.Nazwa = model.Nazwa; dto.Slug = model.Nazwa.Replace(" ", "-").ToLower(); dto.Cena = model.Cena; dto.Opis = model.Opis; dto.KategoriaId = model.KategoriaId; dto.NazwaZdjecia = model.NazwaZdjecia; KategorieDTO kategoriaDTO = db.Kategorie.FirstOrDefault(x => x.Id == model.KategoriaId); kategoriaDTO.Nazwa = kategoriaDTO.Nazwa; db.SaveChanges(); } TempData["SM"] = "Udało Ci się dodać produkt"; #region Image Upload // Sprawdz plik do uploadu if (file != null && file.ContentLength > 0) { // Pobierz rozszerzenie string ext = file.ContentType.ToLower(); // sprwadz rozszerzenie if (ext != "image/jpg" && ext != "image/jpeg" && ext != "image/pjpeg" && ext != "image/gif" && ext != "image/x-png" && ext != "image/png") { using (Db db = new Db()) { ModelState.AddModelError("", "Zdjecie nie zostalo dodane bledne rozszerzenie zdjecia."); return(View(model)); } } // Set uplpad directory paths var originalDirectory = new DirectoryInfo(string.Format("{0}Zdjecia\\Uploads", Server.MapPath(@"\"))); var pathString1 = Path.Combine(originalDirectory.ToString(), "Produkty\\" + id.ToString()); var pathString2 = Path.Combine(originalDirectory.ToString(), "Produkty\\" + id.ToString() + "\\Thumbs"); //Usun pliki z kategorii DirectoryInfo di1 = new DirectoryInfo(pathString1); DirectoryInfo di2 = new DirectoryInfo(pathString2); foreach (FileInfo file2 in di1.GetFiles()) { file2.Delete(); } foreach (FileInfo file3 in di2.GetFiles()) { file3.Delete(); } // Zasejwuj nazwe zdjecia string imageName = file.FileName; using (Db db = new Db()) { ProduktyDTO dto = db.Produkty.Find(id); dto.NazwaZdjecia = imageName; db.SaveChanges(); } // Zasejwuj orginal i miniaturki zdjecia var path = string.Format("{0}\\{1}", pathString1, imageName); var path2 = string.Format("{0}\\{1}", pathString2, imageName); file.SaveAs(path); WebImage img = new WebImage(file.InputStream); img.Resize(200, 200); img.Save(path2); } #endregion return(RedirectToAction("EdycjaProduktu")); }
public ActionResult DodajProdukt(ProduktyVM model, HttpPostedFileBase file) // przekazuje zdjecie jako 2 argument { //Sprawdzam stan modelu if (!ModelState.IsValid) { using (Db db = new Db()) { model.Kategorie = new SelectList(db.Kategorie.ToList(), "Id", "Nazwa"); return(View(model)); // jesli model nie przejdzie weryfikacji } } //Upewniam sie ze nazwa produktu jest unikalna using (Db db = new Db()) { if (db.Produkty.Any(x => x.Nazwa == model.Nazwa)) { model.Kategorie = new SelectList(db.Kategorie.ToList(), "Id", "Nazwa"); ModelState.AddModelError("", "Ta nazwa produktu została juz wybrana"); return(View(model)); // jesli model nie przejdzie weryfikacji } } //Deklaruje id produktu int id; using (Db db = new Db()) { ProduktyDTO produkt = new ProduktyDTO(); produkt.Nazwa = model.Nazwa; produkt.Slug = model.Nazwa.Replace(" ", "-").ToLower(); produkt.Opis = model.Opis; produkt.Cena = model.Cena; produkt.KategoriaId = model.KategoriaId; KategorieDTO catDTO = db.Kategorie.FirstOrDefault(x => x.Id == model.KategoriaId); produkt.KategoriaNazwa = catDTO.Nazwa; db.Produkty.Add(produkt); db.SaveChanges(); // get the id id = produkt.Id; } // Set TempData message TempData["SM"] = "Udalo ci się dodać produkt"; //upload Image podczas dodawania produktu #region Upload Image //Tworze strukture katalogow var originalDirectory = new DirectoryInfo(string.Format("{0}Zdjecia\\Uploads", Server.MapPath(@"\"))); //ustawiam foldery struktury katalogow var pathString1 = Path.Combine(originalDirectory.ToString(), "Produkty"); var pathString2 = Path.Combine(originalDirectory.ToString(), "Produkty\\" + id.ToString()); var pathString3 = Path.Combine(originalDirectory.ToString(), "Produkty\\" + id.ToString() + "\\Thumbs"); var pathString4 = Path.Combine(originalDirectory.ToString(), "Produkty\\" + id.ToString() + "\\Galeria"); var pathString5 = Path.Combine(originalDirectory.ToString(), "Produkty\\" + id.ToString() + "\\Galeria\\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); } // Sprawdz czy zdjecie zostalo dodane if (file != null && file.ContentLength > 0) { //Pobieram rozszerzenie pliku string ext = file.ContentType.ToLower(); // sprawdzam rozszerzenie jesli nie pasuje do tych formatow opisanych ponizej if (ext != "image/jpg" && ext != "image/jpeg" && ext != "image/pjpeg" && ext != "image/gif" && ext != "image/x-png" && ext != "image/png") { using (Db db = new Db()) { model.Kategorie = new SelectList(db.Kategorie.ToList(), "Id", "Nazwa"); ModelState.AddModelError("", "Zdjecie nie zostalo dodane , zla nazwa produktu."); return(View(model)); } } //Inicjalizuje nazwe zdjecia string imageName = file.FileName; // Serjwuje zdjecie do DTO using (Db db = new Db()) { ProduktyDTO dto = db.Produkty.Find(id); dto.NazwaZdjecia = imageName; db.SaveChanges(); } // Ustawiam orginal oraz thumb sciezki var path = string.Format("{0}\\{1}", pathString2, imageName); var path2 = string.Format("{0}\\{1}", pathString3, imageName); // Save orgyinalne zdjecie file.SaveAs(path); // Tworze i sejwuje thumb WebImage img = new WebImage(file.InputStream); img.Resize(200, 200); img.Save(path2);// na sciezce } #endregion return(RedirectToAction("DodajProdukt")); }