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 InserirAsync(EstoqueSignature signature) { var estoque = new Models.Estoque(signature.ProdutoId, signature.Quantidade); var existe = await _estoqueRepository.ObterPorIdAsync(estoque.ProdutoId); if (existe == null) { throw new ArgumentNullException("Já existe este produto em estoque. Você deve atualiar o estoque."); } await _estoqueRepository.InserirAsync(estoque); }
public async Task InserirAsync(Estoque estoque) { var validationResult = new NovoEstoqueValidation().Validate(estoque); if (!validationResult.IsValid) { _notifications.Add(validationResult); return; } await _estoqueRepository.InserirAsync(estoque); await _estoqueRepository.CommitAsync(); }
public async Task InserirAsync(Estoque estoque) { await _estoqueRepository.InserirAsync(estoque); await _estoqueRepository.CommitAsync(); }