public ActionResult New()
        {
            ViewModelAddProduct viewModelAddProduct = new ViewModelAddProduct();

            UnitOfWork unitOfWork = new UnitOfWork();

            viewModelAddProduct.Categories = unitOfWork.Category.GetAll();

            return(View(viewModelAddProduct));
        }
        public async Task <IActionResult> AddProduct(ViewModelAddProduct product)
        {
            var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images", Path.GetFileName(product.ImageFile.FileName));

            using (var stream = new FileStream(path, FileMode.Create))
            {
                await product.ImageFile.CopyToAsync(stream);
            }

            repository.AddProduct(new Product {
                ProductName          = product.ProductName,
                ProductPrice         = product.ProductPrice,
                Description          = product.Description,
                ProductPublishedDate = DateTime.Now,
                ImageName            = Path.GetFileName(product.ImageFile.FileName),
                AspNetUsersId        = UserId
            });
            return(RedirectToAction(nameof(ShowAllProduct)));
        }
        public ActionResult AddProduct(ViewModelAddProduct viewModelAddProduct)
        {
            ImageController imageController = new ImageController();
            bool            isFileImage     = imageController.IsFileImage(viewModelAddProduct.ImageFile);

            if (!isFileImage)
            {
                return(RedirectToAction("New", "Product"));
            }

            string pathForDb = imageController.AddImageToPath(viewModelAddProduct.ImageFile, "~/Content/ProductImages/");

            viewModelAddProduct.Product.ProductImageFilePath = pathForDb;

            UnitOfWork unitOfWork = new UnitOfWork();

            unitOfWork.Product.Add(viewModelAddProduct.Product);
            unitOfWork.Complete();

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