public ActionResult Create(ProductFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                viewModel.Categories = _unitOfWork.Categories.GetLastChildCategories();
                return(View("ProductForm", viewModel));
            }

            var product = Mapper.Map <ProductFormViewModel, Product>(viewModel);
            var tags    = _unitOfWork.Tags.GetTags().Where(t => viewModel.TagIds.Contains(t.Id)).ToList();

            foreach (var tag in tags)
            {
                product.Tags.Add(tag);
            }

            product.ThumbnailPath = viewModel.GetThumbnailPath();
            product.LastUpdate    = product.DateOfIssue = DateTime.Now;

            _unitOfWork.Products.Add(product);
            _unitOfWork.Complete();

            viewModel.Id = product.Id;
            viewModel.SaveThumbnailOnServer();
            product.ThumbnailPath = viewModel.GetThumbnailPath();
            _unitOfWork.Complete();

            return(RedirectToAction("Dashboard", "Admin"));
        }
        public ActionResult Edit(ProductFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                viewModel.Categories = _unitOfWork.Categories.GetLastChildCategories();
                return(View("ProductForm", viewModel));
            }

            var productFromDb = _unitOfWork.Products.GetProduct(viewModel.Id);

            productFromDb.CategoryId  = viewModel.CategoryId;
            productFromDb.Description = viewModel.Description;
            productFromDb.MarketUrl   = viewModel.MarketUrl;
            productFromDb.Name        = viewModel.Name;
            productFromDb.Price       = viewModel.Price;
            productFromDb.LastUpdate  = DateTime.Now;

            viewModel.SaveThumbnailOnServer();

            _unitOfWork.Complete();

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