public async Task <IActionResult> Atualizar(Guid id, [FromBody] AtualizarProduto atualizarProduto) { // recebo a requisição e passo a responsabilidade de fazer a lógica de adicionar para outra classe (Princípio da Responsabilidae única (SOLID)) // os metodos do controller não tem de ter muito código. basicamente uma linha que repassa a requisição pra outra classe fazer a trativa // e outra linha que retorna a reposta para o frontend try { atualizarProduto.ObterId(id); await _produtoUpdate.Atualizar(atualizarProduto); return(NoContent()); } catch (Exception) { return(NotFound()); } }
public async Task Atualizar(AtualizarProduto atualizarProduto) { try { var produto = await _appDbContext.Produtos.FirstOrDefaultAsync(x => x.Id == atualizarProduto.Id); _appDbContext.Entry(produto).State = EntityState.Modified; _atualizacaoDoProduto.AtualizarProduto(produto, atualizarProduto); await Task.FromResult(_appDbContext.Set <Produto>().Update(produto)); await _appDbContext.SaveChangesAsync(); } catch (Exception exception) { throw new Exception("Ops! Algo deu errado no momento de atualizar o produto: " + exception.Message); } }
public void AtualizarProduto(Produto produto, AtualizarProduto atualizarProduto) { produto.AddNewProduto(atualizarProduto.Descricao, atualizarProduto.Valor, atualizarProduto.QuantidadeNoEstoque, atualizarProduto.Ativo); }