// GET: Admin/Producten/Create
        public ActionResult Create()
        {
            var prodVm = new ProductCreateVm()
            {
                Product = null,
                //Hoofdcategorielijst = hoofdcategorielijst(),
                Leverancierlijst = leverancierlijst(),
                Categorielijst   = categorielijst()
            };

            return(View(prodVm));
        }
Beispiel #2
0
        public IActionResult Create(ProductCreateVm model)
        {
            if (HttpContext.Session.GetInt32("LoginLevel") != 2)
            {
                ViewBag.checkLogin = 0;
                return(View("../Home/AddCart"));
            }
            if (!ModelState.IsValid)
            {
                var x = _productService.GetList();
                ViewBag.BrandList    = x.BrandList;
                ViewBag.CategoryList = x.CategoryList;
                ViewBag.StatusList   = x.StatusList;
                return(View());
            }

            var products = _service.GetAll();

            foreach (ProductDto item in products)
            {
                if (item.Name.ToLower() == model.Name.ToLower())
                {
                    var x = _productService.GetList();
                    ViewBag.BrandList    = x.BrandList;
                    ViewBag.CategoryList = x.CategoryList;
                    ViewBag.StatusList   = x.StatusList;
                    ViewBag.ProductDuplicateErrorMessage = "Error";
                    return(View());
                }
            }

            string uniqueFileName = ProcessUploadedFile(model);

            SaveProductDto saveProductDto = new SaveProductDto()
            {
                Name       = model.Name,
                Price      = model.Price,
                Sale       = model.Sale,
                Amount     = model.Amount,
                BrandID    = model.BrandID,
                CategoryID = model.CategoryID,
                Hot        = model.Hot,
                Status     = model.Status,
                Content    = model.Content,
                ImagePath  = uniqueFileName
            };

            _service.Add(saveProductDto);
            return(RedirectToAction("Index"));
        }
        private string ProcessUploadedFile(ProductCreateVm model)
        {
            string uniqueFileName = null;

            if (model.Photo != null)
            {
                string uploadsFolder = Path.Combine(_webHostEnvironment.WebRootPath, "images");
                uniqueFileName = Guid.NewGuid().ToString() + "_" + model.Photo.FileName;
                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    model.Photo.CopyTo(fileStream);
                }
            }

            return(uniqueFileName);
        }
        public IActionResult Create(ProductCreateVm model)
        {
            if (ModelState.IsValid)
            {
                string  uniqueFileName = ProcessUploadedFile(model);
                Product newProduct     = new Product
                {
                    Name             = model.Name,
                    Price            = model.Price,
                    Group            = model.Group,
                    ShortDescription = model.ShortDescription,
                    LongDescription  = model.ShortDescription,
                    PhotoPath        = uniqueFileName
                };

                _productRepository.Add(newProduct);
                return(RedirectToAction("Details", new { id = newProduct.Id }));
            }

            return(View());
        }
        public ActionResult Create(ProductCreateVm inputProductCreateVm, HttpPostedFileBase upload)
        {
            var existingCategorie   = db.Set <Categorie>().Find(inputProductCreateVm.Product.Categorie.Id);
            var existingLeverancier = db.Set <Leverancier>().Find(inputProductCreateVm.Product.Leverancier.GebruikerId);

            if (inputProductCreateVm.Product.Artikelnummer != null)
            {
                //nieuwe product maken
                var productToAdd = new Product
                {
                    Artikelnummer       = inputProductCreateVm.Product.Artikelnummer,
                    Artikelnaam         = inputProductCreateVm.Product.Artikelnaam,
                    Artikelomschrijving = inputProductCreateVm.Product.Artikelomschrijving,
                    Prijs       = inputProductCreateVm.Product.Prijs,
                    FiguurURL   = inputProductCreateVm.Product.FiguurURL,
                    Spotlight   = inputProductCreateVm.Product.Spotlight,
                    Categorie   = existingCategorie,
                    Leverancier = existingLeverancier
                };
                if (ModelState.IsValid)
                {
                    if (upload != null && upload.ContentLength > 0)
                    {
                        var photo = new FilePaths
                        {
                            FileName      = System.IO.Path.GetFileName(upload.FileName),
                            FileType      = FileType.Photo,
                            Artikelnummer = upload.ToString(),
                        };


                        productToAdd.Files = new List <FilePaths>();
                        productToAdd.Files.Add(photo);
                        upload.SaveAs(Path.Combine(Server.MapPath("~/Content/images"), upload.FileName));
                    }
                }

                //product tovoegen aan de dbSet (tabel)
                db.Set <Product>().Add(productToAdd);

                //context wijzigingen doorvoeren naar de Database
                db.SaveChanges();
                //actie voor response ondernemen
                TempData["SuccessMessage"] = $"Het product <b>{productToAdd.Artikelnummer}</b> werd toegevoegd!";
                return(RedirectToAction("Index", new { Controller = "Producten", Area = "Admin" }));
            }
            else
            {
                //de existing categorie of leverancier bestaat niet
                ModelState.AddModelError("Product.Categorie.Id",
                                         $"De categorie met id {inputProductCreateVm.Product.Categorie.Id} bestaat niet!");
                ModelState.AddModelError("Product.Leverancier.GebruikerId",
                                         $"De Leverancier met id {inputProductCreateVm.Product.Leverancier.GebruikerId} bestaat niet!");
            }
            //model not valid

            //input model wordt nu het view model, dus moet nog vervolledigd worden
            inputProductCreateVm = new ProductCreateVm()
            {
                Product = null,
                //Hoofdcategorielijst = hoofdcategorielijst(),
                Categorielijst   = categorielijst(),
                Leverancierlijst = leverancierlijst()
            };

            return(View(inputProductCreateVm));
        }