示例#1
0
 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());
 }
示例#2
0
        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));
        }
示例#3
0
        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));
        }
示例#4
0
 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;
 }
示例#5
0
        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
            });
        }
示例#6
0
        //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"));
        }
示例#7
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));
        }
示例#8
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"));
        }
示例#9
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"));
        }