예제 #1
0
        public ActionResult DodajProdukt()
        {
            ProduktyVM model = new ProduktyVM();

            using (Db db = new Db())
            {
                model.Kategorie = new SelectList(db.Kategorie.ToList(), "Id", "Nazwa");
            }

            return(View(model));
        }
예제 #2
0
        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));
        }
예제 #3
0
        [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));
        }
예제 #4
0
        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"));
        }
예제 #5
0
        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"));
        }