public async Task <IActionResult> Adicionar(int produtoId, int quantidade) { try { var produtoResult = await _produtoRepository.GetById(produtoId); if (produtoResult != null) { var usuario = _userManager.GetUserAsync(HttpContext.User).Result; var produtosDoUsuario = await _carrinhoCompraRepository.GetItemsForUserById(usuario.Id); var isProdutoAdicionado = CarrinhoCompraService.VerificarProdutoAdicionadoAoCarrinho(produtosDoUsuario, produtoId); if (isProdutoAdicionado) { throw new InvalidArgumentException("Este produto ja foi adicionado em seu carrinho."); } var carrinhoMontado = _carrinhoCompraRepository.CreateObject(produtoId, quantidade, usuario.Id); await _carrinhoCompraRepository.Adicionar(carrinhoMontado); return(Json(ResponseMensage.GetMensage(StatusMensageEnum.success, "Produto Adicionado ao carrinho!"))); } return(Json(ResponseMensage.GetMensage(StatusMensageEnum.warning, "O produto não foi encontrado!"))); } catch (Exception e) { return(Json(ResponseMensage.GetMensage(StatusMensageEnum.error, e.Message))); } }
public async Task <IActionResult> CheckoutMercadoPago(long id) { var usuario = _userManager.GetUserAsync(HttpContext.User).Result; var produtoResult = await _produtoRepository.GetById(id); var produtosDoUsuario = await _carrinhoCompraRepository.GetItemsForUserById(usuario.Id); var isProdutoAdicionado = CarrinhoCompraService.VerificarProdutoAdicionadoAoCarrinho(produtosDoUsuario, (int)produtoResult.ProdutoId); var checkouMercadoPagoViewModel = new CheckoutMercadoPagoViewModel { Produto = produtoResult, CarrinhoCompraItem = produtosDoUsuario.FirstOrDefault(p => p.ProdutoId == produtoResult.ProdutoId) }; if (!isProdutoAdicionado) { var carrinhoMontado = _carrinhoCompraRepository.CreateObject(produtoResult.ProdutoId, 1, usuario.Id); checkouMercadoPagoViewModel.CarrinhoCompraItem = await _carrinhoCompraRepository.Adicionar(carrinhoMontado); } return(View(checkouMercadoPagoViewModel)); }