Ejemplo n.º 1
0
        public async Task <IActionResult> AdicionarItem(Guid id, int quantidade)
        {
            var produto = await _produtoAppService.ObterPorId(id);

            if (produto == null)
            {
                return(BadRequest());
            }

            if (produto.QuantidadeEstoque < quantidade)
            {
                TempData["Erro"] = "Produto com estoque insuficiente";

                return(RedirectToAction("ProdutoDetalhe", "Vitrine", new { id }));
            }

            var command = new AdicionarItemPedidoCommand(ClientId, produto.Id, produto.Nome, quantidade, produto.Valor);
            await _mediatorHandler.Enviarcommando(command);

            if (OperacaoValida())
            {
                return(RedirectToAction("Index"));
            }

            TempData["Erros"] = ObterMensagemErro();

            return(RedirectToAction("ProdutoDetalhe", "Vitrine", new { id }));
        }