public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var userId = User.Identity.GetUserId();

            var product = _productsRepository.GetById((int)id);


            if (product == null)
            {
                return(HttpNotFound());
            }

            var viewModel = new ProductsEditViewModel()
            {
                Product = product
            };

            viewModel.Init(_productTypesRepository, _suppliersRepository, _unitsRepository, User.Identity.GetUserId());

            return(View(viewModel));
        }
Ejemplo n.º 2
0
        public void CreateRedirectActionRedirectsToIndexAction()
        {
            //Arrange
            var mockRepo   = new Mock <IProductRepository>();
            var controller = new ProductController(mockRepo.Object);

            controller.ControllerContext = MockHelpers.FakeControllerContext(false);

            var tempData = new
                           TempDataDictionary(controller.ControllerContext.HttpContext, Mock.Of <ITempDataProvider>());

            controller.TempData = tempData;
            var model = new ProductsEditViewModel();

            model.Price       = 100;
            model.Description = "Description of product";

            //Act
            var result = controller.Create(model) as RedirectToActionResult;

            //Assert
            Assert.IsNotNull(result,
                             "RedirectToIndex needs to redirect to the Index action");

            Assert.AreEqual("Index", result.ActionName as String);
        }
Ejemplo n.º 3
0
        public void Save(ProductsEditViewModel product)
        {
            var p = db.Products;

            p.AddRange(
                new Product
            {
                Name           = product.Name,
                Description    = product.Description,
                Price          = product.Price,
                CategoryId     = product.CategoryId,
                ManufacturerId = product.ManufacturerId
            });
            db.SaveChanges();
        }
Ejemplo n.º 4
0
            public void CreateNullIndex()
            {
                var expectedViewName = "Create";

                repoMock = new Mock <IProductRepository>();
                List <Product> fakeproducts = new List <Product>
                {
                    new Product {
                        Name = "", Price = 121.50m, CategoryId = 13
                    },
                    new Product {
                        Name = "", Price = 1520.00m, CategoryId = 13
                    },
                    new Product {
                        Name = "", Price = 14.50m, CategoryId = 12
                    },
                    new Product {
                        Name = "", Price = 32.00m, CategoryId = 12
                    },
                    new Product {
                        Name = "", Price = 25.50m, CategoryId = 12
                    }
                };
                var controller = new ProductController(repoMock.Object);
                var badModel   = new ProductsEditViewModel()
                {
                    Name = "", Description = ""
                };
                var validationContext = new ValidationContext(badModel, null, null);
                var validationResults = new List <ValidationResult>();

                Validator.TryValidateObject(badModel, validationContext, validationResults, true);
                foreach (var validationResult in validationResults)
                {
                    controller.ModelState.AddModelError(validationResult.MemberNames.First(),
                                                        validationResult.ErrorMessage);
                }


                var result = controller.Create(badModel) as ViewResult;

                Assert.IsNotNull(result);
                Assert.AreEqual(null, result.ViewName);
            }
Ejemplo n.º 5
0
 public ActionResult Create([Bind("ProductId,Name,Description,Price,ManufacturerId,CategoryId")]
                            ProductsEditViewModel product)
 {
     try
     {
         if (ModelState.IsValid)
         {
             repository.Save(product);
             TempData["message"] = string.Format("{0} har blitt opprettet", product.Name);
             return(RedirectToAction("Index"));
         }
         {
             return(View());
         }
     }
     catch (Exception e)
     {
         return(View());
     }
 }
Ejemplo n.º 6
0
 public IActionResult Edit(ProductsEditViewModel viewModel)
 {
     //check validated
     if (ModelState.IsValid)
     {
         //if yes Save product and return View Index action
         repository.SaveProduct(viewModel.Product);
         // TempDaya similar to Session and Viewbag but it is temporary, persists until is read by View
         //ViewBag only persists in the current HTTP request=>go to the new URL ViewBag will be lost
         //Session persists until explicit removed
         TempData["message"] = $"{viewModel.Product.Name} has been saved";
         string[] redirection = viewModel.ReturnUrl.Split("/");
         return(RedirectToAction(redirection[2], redirection[1]));
     }
     else
     {
         TempData["error"] = $"There is something wrong with the data values.";
         // there is something wrong with the data values
         return(View(viewModel));
     }
 }
        public ActionResult Edit(ProductsEditViewModel viewModel)
        {
            //ValidateProduct(viewModel.Product);

            if (ModelState.IsValid)
            {
                var product      = viewModel.Product;
                var modification = viewModel.ProductModification;
                modification.ProductId = product.Id;
                modification.UserId    = User.Identity.GetUserId();

                _productsRepository.Update(product);
                _productModificationsRepository.Add(modification);

                TempData["Message"] = "Votre produit a été modifié correctement.";

                return(RedirectToAction("Detail", new { id = product.Id }));
            }

            viewModel.Init(_productTypesRepository, _suppliersRepository, _unitsRepository, User.Identity.GetUserId());

            return(View(viewModel));
        }