public async Task InserirAsync(ProdutoSignature signature) { var produto = new Models.Produto(signature.Nome, signature.Descricao, signature.Preco, signature.Quantidade); await _produtoRepository.InserirAsync(produto).ConfigureAwait(false); var estoque = await _estoqueRepository.ObterPorIdAsync(produto.Id); if (estoque == null) { if (produto.Quantidade <= 0) { throw new ArgumentNullException("Quantidade de estoque necessita ser maior que zero"); } estoque = new Models.Estoque(Guid.NewGuid(), produto.Id, produto.Quantidade); await _estoqueRepository.InserirAsync(estoque).ConfigureAwait(false); } else { estoque.Aumentar(produto.Quantidade); await _estoqueRepository.AtualizarAsync(estoque); } }
public async Task <IActionResult> Post([FromBody] ProdutoSignature produto) { try { await _produtoService.InserirAsync(produto); return(Created("", "")); } catch (Exception ex) { _logger.LogError(ex, "Erro ao Salvar um Produto"); return(BadRequest($"Erro => {ex.Message}")); } }
public async Task AtualizarAsync(ProdutoSignature signature) { var produto = new Models.Produto(signature.Nome, signature.Descricao, signature.Preco, signature.Quantidade); await _produtoRepository.AtualizarAsync(produto); }