예제 #1
0
        public IActionResult AdicionarItens(int Id)
        {
            var itens = AdicionarProdutos(Id);

            _pedidoItemRepository.Cadastrar(itens, Id);

            _carrinhoCompra.RemoverTodos();

            TempData["MSG_S"] = "Pedido cadastrado com sucesso!";

            return(RedirectToAction("Index", "CarrinhoCompra", new { area = "" }));
        }
예제 #2
0
        public async Task <IActionResult> CheckoutMercadoPago(
            long produtoId,
            long carrinhoCompraId,
            string cep,
            string cidade,
            string estado,
            string bairro,
            string endereco,
            string numero,
            string complemento,
            decimal valorTotal
            )
        {
            var usuario = _userManager.GetUserAsync(HttpContext.User).Result;

            var pedidoCadastrado = await _pedidoRepository.Cadastrar(new Pedido
            {
                UsuarioId   = usuario.Id,
                Cep         = cep,
                Cidade      = cidade,
                Estado      = estado,
                Bairro      = bairro,
                Endereco    = endereco,
                Numero      = numero,
                Complemento = complemento,
                ValorTotal  = valorTotal,
                Data        = DateTime.UtcNow,
                Status      = PagamentoStatusEnum.Pago,
                Entregue    = BooleanoEnum.Nao
            }
                                                                     );

            var pedidoItem = new PedidoItem
            {
                PedidoId   = pedidoCadastrado.PedidoId,
                ProdutoId  = produtoId,
                Quantidade = 1
            };

            await _pedidoItemRepository.Cadastrar(pedidoItem);

            var carrinhoResult = await _carrinhoCompraRepository.GetCarrinhoItemById(carrinhoCompraId);

            await _carrinhoCompraRepository.Remover(carrinhoResult);

            await _produtoRepository.BaixarQuantidadeProduto(produtoId, 1);

            var produtoResult = await _produtoRepository.GetById(produtoId);

            return(Json(ResponseMensage.GetMensage(StatusMensageEnum.warning, produtoResult.LinkMercadoPago)));
        }
예제 #3
0
        private async Task InserirPedidoItens(long pedidoId, List <CarrinhoCompraItem> carrinhoCompraItens)
        {
            foreach (CarrinhoCompraItem carrinhoItem in carrinhoCompraItens)
            {
                var pedidoItem = new PedidoItem
                {
                    PedidoId   = pedidoId,
                    ProdutoId  = carrinhoItem.ProdutoId,
                    Quantidade = carrinhoItem.Quantidade
                };

                await _produtoRepository.BaixarQuantidadeProduto(carrinhoItem.ProdutoId, carrinhoItem.Quantidade);

                await _pedidoItemRepository.Cadastrar(pedidoItem);

                var carrinhoResult = await _carrinhoCompraRepository.GetCarrinhoItemById(carrinhoItem.CarrinhoCompraId);

                await _carrinhoCompraRepository.Remover(carrinhoResult);
            }
        }