Example #1
0
        public ActionResult Edit(ProductFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                viewModel.Categories = _unitOfWork.Category.GetCategoriesList();
                return(View(viewModel));
            }

            var product = _unitOfWork.Product.GetProductById(viewModel.Id);

            product.Name         = viewModel.Name;
            product.Description  = viewModel.Description;
            product.CategoryId   = viewModel.Category;
            product.StockAmount  = viewModel.StockAmount;
            product.Price        = viewModel.Price;
            product.Year         = viewModel.Year;
            product.Dimensions   = viewModel.Dimensions;
            product.Manufacturer = viewModel.Manufacturer;

            var uploads = viewModel.UploadedFiles;

            if (uploads != null)
            {
                foreach (var upload in uploads)
                {
                    if (upload != null && upload.ContentType.Contains("image"))
                    {
                        var productPhoto = new File
                        {
                            FileName  = Path.GetFileName(upload.FileName),
                            ProductId = product.Id
                        };

                        var path = Path.Combine(Server.MapPath("~/Content/Images/"), productPhoto.FileName);

                        Resize(100, 100, upload.InputStream, Path.Combine(Server.MapPath("~/Content/Images/Thumbnails/" + productPhoto.FileName)));

                        product.Files.Add(productPhoto);

                        upload.SaveAs(path);
                    }
                    else if (upload != null && !upload.ContentType.Contains("image"))
                    {
                        viewModel.Categories = _unitOfWork.Product.GetCategories();
                        return(View(viewModel));
                    }
                }

                if (product.Files.Count != 0)
                {
                    _unitOfWork.Complete();

                    return(RedirectToAction("Index"));
                }
            }

            _unitOfWork.Complete();

            return(RedirectToAction("Index"));
        }
Example #2
0
        public ActionResult Add(ProductFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                viewModel.Categories = _unitOfWork.Category.GetCategoriesList();
                return(View(viewModel));
            }

            var product = new Product()
            {
                Name         = viewModel.Name,
                Price        = viewModel.Price,
                Description  = viewModel.Description,
                CategoryId   = viewModel.Category,
                StockAmount  = viewModel.StockAmount,
                Year         = viewModel.Year,
                Dimensions   = viewModel.Dimensions,
                Manufacturer = viewModel.Manufacturer,
                AddedDate    = DateTime.Now
            };

            _unitOfWork.Product.AddProduct(product);

            _unitOfWork.Complete();

            var uploads = viewModel.UploadedFiles;

            var productFiles = new List <File>();

            if (uploads != null)
            {
                if (!Directory.Exists("~/Content/Images/") && !Directory.Exists("~/Content/Images/Thumbnails/"))
                {
                    Directory.CreateDirectory(Server.MapPath("~/Content/Images/"));
                    Directory.CreateDirectory(Server.MapPath("~/Content/Images/Thumbnails/"));
                }

                foreach (var upload in uploads)
                {
                    if (upload != null && upload.ContentType.Contains("image"))
                    {
                        var productPhoto = new File
                        {
                            FileName  = Path.GetFileName(upload.FileName),
                            ProductId = product.Id
                        };

                        ResizeBigImage(upload.InputStream, Path.Combine(Server.MapPath("~/Content/Images/"), productPhoto.FileName));

                        Resize(100, 100, upload.InputStream, Path.Combine(Server.MapPath("~/Content/Images/Thumbnails/" + productPhoto.FileName)));

                        productFiles.Add(productPhoto);
                    }
                    else if (upload != null && !upload.ContentType.Contains("image"))
                    {
                        viewModel.Categories = _unitOfWork.Category.GetCategoriesList();
                        return(View(viewModel));
                    }
                }

                product.Files = productFiles;

                _unitOfWork.Complete();
            }


            return(RedirectToAction("Index", "Product"));
        }