Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 4
0
        public async Task InserirAsync(Estoque estoque)
        {
            await _estoqueRepository.InserirAsync(estoque);

            await _estoqueRepository.CommitAsync();
        }