public async Task Cannot_Edit_Invalid_Product() { var target = new ProductController(_productServiceMock.Object); ProductToEdit pToEdit = new ProductToEdit(); Product product = new Product(); target.ModelState.AddModelError("error", "error"); var result = await target.Edit(pToEdit); Assert.IsNotInstanceOfType(result, typeof(RedirectToRouteResult)); }
public async Task Can_Edit_Valid_Product() { ProductToEdit productToEdit = new ProductToEdit() { Product = new Product() { CategoryID = 1, ProductID = 1 } }; var target = new ProductController(_productServiceMock.Object); var result = await target.Edit(productToEdit); _productServiceMock.Verify(m => m.UpdateAsync(productToEdit.Product)); Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult)); }
public async Task <ActionResult> Edit(ProductToEdit ptEdit) { if (ModelState.IsValid) { try { await _productService.UpdateAsync(ptEdit.Product); } catch (ServiceException e) { throw new WebUiException($"Ошибка в контроллере {nameof(ProductController)} в методе {nameof(Edit)}", e); } return(RedirectToAction("EditableList", new { categoryId = ptEdit.Product.CategoryID })); } return(PartialView(ptEdit)); }
public async Task <IActionResult> EditProduct(ProductToEdit productToEdit) { if (await _repo.ProductExist(productToEdit.ProductName, productToEdit.Id, productToEdit.CompanyId)) { return(BadRequest("Name Already Exist")); } var productFromRepo = await _repo.GetProduct(productToEdit.Id); _mapper.Map(productToEdit, productFromRepo); if (await _repo.SaveAll()) { var productToReturnFromRepo = await _repo.GetProduct(productToEdit.Id); var prodToReturn = _mapper.Map <ProductToReturnDto>(productToReturnFromRepo); return(Ok(prodToReturn)); } throw new Exception($"Updating product {productToEdit.Id} failed to save"); }
public async Task <ActionResult> Edit(WebUser user, int id) { try { var product = await _productService.GetItemAsync(id); ProductToEdit ptEdit = new ProductToEdit() { Product = product }; return(PartialView(ptEdit)); } catch (ServiceException e) { throw new WebUiException($"Ошибка в контроллере {nameof(ProductController)} в методе {nameof(Edit)}", e); } }