コード例 #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);
            }
        }
コード例 #2
0
        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}"));
            }
        }
コード例 #3
0
        public async Task AtualizarAsync(ProdutoSignature signature)
        {
            var produto = new Models.Produto(signature.Nome, signature.Descricao, signature.Preco, signature.Quantidade);

            await _produtoRepository.AtualizarAsync(produto);
        }