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 AtualizarAsync(Estoque estoque) { var validationResult = new AtualizacaoEstoqueValidation().Validate(estoque); if (!validationResult.IsValid) { _notifications.Add(validationResult); return; } _estoqueRepository.AtualizarAsync(estoque); await _estoqueRepository.CommitAsync(); }
public async Task <EstoqueResult> AtualizarAsync(EstoqueSignature signature) { var estoque = await _estoqueRepository.ObterPorIdAsync(signature.ProdutoId); if (estoque == null) { return(null); } estoque.Aumentar(signature.Quantidade); await _estoqueRepository.AtualizarAsync(estoque); return(estoque.ToResult()); }
public async Task AtualizarAsync(Estoque estoque) { _estoqueRepository.AtualizarAsync(estoque); await _estoqueRepository.CommitAsync(); }