private async Task <bool> DebitarItemEstoque(Guid produtoId, int quantidade) { var produto = await _produtoRepository.ObterPorId(produtoId); if (produto == null) { return(false); } if (!produto.PossuiEstoque(quantidade)) { await _mediatorHandler.PublicarNotificacao(new DomainNotification("Estoque", $"Produto - {produto.Nome} sem estoque")); return(false); } produto.DebitarEstoque(quantidade); if (produto.QuantidadeEstoque < 10) { await _mediatorHandler.PublicarEventoDominio(new ProdutoAbaixoEstoqueEvent(produto.Id, produto.QuantidadeEstoque)); } _produtoRepository.Atualizar(produto); return(true); }