public ServiceResponse AddProdukt(ProduktyDTO produkt) { using (var session = NHibernateBase.Session) { using (var transaction = session.BeginTransaction()) { try { var produktAdd = produkt.ToProdukty(); session.Save(produktAdd); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); return(new ServiceResponse() { Errors = e.StackTrace + " " + e.Message, Success = false }); } } } return(new ServiceResponse()); }
public ActionResult Orders() { // Init list of OrdersForUserVM List <ZamowieniaDlaUzytkownikaVM> ordersForUser = new List <ZamowieniaDlaUzytkownikaVM>(); using (Db db = new Db()) { // Get user id UzytkownikDTO user = db.Uzytkownik.Where(x => x.Username == User.Identity.Name).FirstOrDefault(); int userId = user.Id; // Init list of OrderVM List <ZamowienieVM> orders = db.Zamowienia.Where(x => x.UzytkownikId == userId).ToArray().Select(x => new ZamowienieVM(x)).ToList(); // Loop through list of OrderVM foreach (var order in orders) { // Init products dict Dictionary <string, int> productsAndQty = new Dictionary <string, int>(); // Declare total decimal total = 0m; // Init list of OrderDetailsDTO List <ZamowieniaSzczegolyDTO> orderDetailsDTO = db.ZamowieniaSzczegoly.Where(x => x.ZamowieniaId == order.IdZamowienia).ToList(); // Loop though list of OrderDetailsDTO foreach (var orderDetails in orderDetailsDTO) { // Get product ProduktyDTO product = db.Produkty.Where(x => x.Id == orderDetails.ProduktId).FirstOrDefault(); // Get product price decimal price = product.Cena; // Get product name string productName = product.Nazwa; // Add to products dict productsAndQty.Add(productName, orderDetails.LiczbaProduktow); // Get total total += orderDetails.LiczbaProduktow * price; } // Add to OrdersForUserVM list ordersForUser.Add(new ZamowieniaDlaUzytkownikaVM() { OrderNumber = order.IdZamowienia, Total = total, ProductsAndQty = productsAndQty, CreatedAt = order.GodzinaUtworzenia }); } } // Return view with list of OrdersForUserVM return(View(ordersForUser)); }
public ActionResult DodajDoKoszykaPartial(int id) { // Init CartVM list List <KoszykVM> cart = Session["koszyk"] as List <KoszykVM> ?? new List <KoszykVM>(); // Init CartVM KoszykVM model = new KoszykVM(); using (Db db = new Db()) { // Get the product ProduktyDTO product = db.Produkty.Find(id); // Check if the product is already in cart var productInCart = cart.FirstOrDefault(x => x.ProduktId == id); // If not, add new if (productInCart == null) { cart.Add(new KoszykVM() { ProduktId = product.Id, ProduktNazwa = product.Nazwa, Ilosc = 1, Cena = product.Cena, Zdjecie = product.NazwaZdjecia }); } else { // If it is, increment productInCart.Ilosc++; } } // Get total qty and price and add to model int qty = 0; decimal price = 0m; foreach (var item in cart) { qty += item.Ilosc; price += item.Ilosc * item.Cena; } model.Ilosc = qty; model.Cena = price; // Save cart back to session Session["koszyk"] = cart; // Return partial view with model return(PartialView(model)); }
public ProduktyVM(ProduktyDTO wiersz) { Id = wiersz.Id; Nazwa = wiersz.Nazwa; Slug = wiersz.Slug; Opis = wiersz.Opis; Cena = wiersz.Cena; KategoriaNazwa = wiersz.KategoriaNazwa; KategoriaId = wiersz.KategoriaId; NazwaZdjecia = wiersz.NazwaZdjecia; }
public static Produkty ToProdukty(this ProduktyDTO dTO) { if (dTO == null) { return(null); } return(new Produkty { Id = dTO.Id, Marka = dTO.Marka, Model = dTO.Model, Opis = dTO.Opis, Ilosc = dTO.Ilosc }); }
//Get /Admin/Sklepowy/UsunProdukt public ActionResult UsunProdukt(int id) { using (Db db = new Db()) { ProduktyDTO dto = db.Produkty.Find(id); db.Produkty.Remove(dto); db.SaveChanges(); } var oryginalnaSciezka = new DirectoryInfo(string.Format("{0}Zdjecia\\Uploads", Server.MapPath(@"\"))); string pathString = Path.Combine(oryginalnaSciezka.ToString(), "Produkty\\" + id.ToString()); if (Directory.Exists(pathString)) { Directory.Delete(pathString, true); } //Redirect return(RedirectToAction("Produkty")); }
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)); }
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")); }