public async Task <IActionResult> Edit(int?id) { var pEditViewModel = new ProdutoEditViewModel(); var produto = await produtoRepositorio.FindProdutoByIdAsync(id.Value); if (id == null) { return(NotFound()); } if (produto == null) { return(NotFound()); } ViewBag.Fabricantes = (await fabricanteRepository.ListaFabricantesAsync()).Select(c => new SelectListItem() { Text = c.Nome, Value = c.Id.ToString() }); pEditViewModel.Nome = produto.Nome; pEditViewModel.Preco = produto.Preco; pEditViewModel.FabricanteId = produto.Fabricante.Id; pEditViewModel.Id = produto.Id; pEditViewModel.Url = produto.FotoUrl; return(View(pEditViewModel)); }
public async Task Setup() { mockProdutos = new Mock <IProdutoRepository>(); mockFabricantes = new Mock <IFabricanteRepository>(); controller = new ProdutosController(mockProdutos.Object, mockFabricantes.Object); // act produtoEditViewModel = Generator.InvalidProdutoEditVM(); result = await controller.Edit(produtoEditViewModel); }
public static Produto ToModel(this ProdutoEditViewModel produtoEditViewModel) => new Produto { Id = produtoEditViewModel.Id, Titulo = produtoEditViewModel.Titulo, Descricao = produtoEditViewModel.Descricao, Preco = produtoEditViewModel.Preco, Quantidade = produtoEditViewModel.Quantidade, Imagem = produtoEditViewModel.Imagem, IdCategoria = produtoEditViewModel.IdCategoria, DataAtualizacao = DateTime.Now };
public async Task Setup() { fabricante = new Fabricante(); produto = new Produto(); mockProdutos = new Mock <IProdutoRepository>(); mockFabricantes = new Mock <IFabricanteRepository>(); controller = new ProdutosController(mockProdutos.Object, mockFabricantes.Object); mockFabricantes.Setup(f => f.FindByIdAsync(1)).ReturnsAsync(fabricante); mockProdutos.Setup(p => p.FindProdutoByIdAsync(1)).ReturnsAsync(produto); mockProdutos.Setup(p => p.UpdateAsync(produto)).Returns(Task.CompletedTask); produtoEditVM = Generator.ValidProdutoEditVM(); // act result = await controller.Edit(produtoEditVM); }
public async Task <IActionResult> Edit(ProdutoEditViewModel produtoEditViewModel) { if (produtoEditViewModel.Id == 0) { return(NotFound()); } if (!produtoEditViewModel.Preco.ToString().EndsWith("3")) { ModelState.AddModelError("Preco", "O preço deve terminar em 3."); } if (ModelState.IsValid) { var fabricante = await fabricanteRepository.FindByIdAsync(produtoEditViewModel.FabricanteId); var produto = await produtoRepositorio.FindProdutoByIdAsync(produtoEditViewModel.Id); if (produto == null) { return(NotFound()); } produto.Nome = produtoEditViewModel.Nome; produto.Preco = produtoEditViewModel.Preco; produto.Fabricante = fabricante; produto.FotoUrl = produtoEditViewModel.Url; try { await produtoRepositorio.UpdateAsync(produto); } catch (DbUpdateConcurrencyException) { if (!await produtoRepositorio.ProdutoExists(produtoEditViewModel.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } await fabricanteRepository.ListaFabricantesAsync(); return(View(produtoEditViewModel)); }
public async Task <IActionResult> UpdateProduto(ProdutoEditViewModel produtoEditViewModel, ProdutoCreateEtapaBasicaModel produtoCreateEtapaBasicaModel, string novaReferencia) { try { produtoCreateEtapaBasicaModel.Id = produtoEditViewModel.IdProd; novaReferencia = produtoCreateEtapaBasicaModel.Referencia; produtoCreateEtapaBasicaModel.Referencia = produtoEditViewModel.Basico.Referencia; produtoCreateEtapaBasicaModel.StatusAtivacao = produtoEditViewModel.Basico.StatusAtivacao; var(status, mensagem) = await _produtoAppServices.UpdateAsync(produtoCreateEtapaBasicaModel, novaReferencia); if (!status) { TempData["Error"] = mensagem; } } catch (Exception e) { TempData["Error"] = $"Error, type: {e.Message}"; } return(RedirectToAction("EditProduto", new { id = produtoEditViewModel.IdProd })); }