public async Task <IActionResult> CadastroAjax(CadastroUsuarioViewModel usuarioVm) { try { if (!ModelState.IsValid) { return(Json(usuarioVm)); } var usuarioIsExistente = await _accRepository.GetUserByEmail(usuarioVm.UserName); if (usuarioIsExistente != null) { throw new InvalidArgumentException("Desculpe Já existente um úsuario cadastrado com o mesmo e-mail!"); } var usuarioCadastrado = await _accRepository.CadastrarUsuario(usuarioVm, PerfilUsuarioEnum.Comun); await _signInManager.SignInAsync(usuarioCadastrado, isPersistent : false); return(Json("sucesso")); } catch (Exception e) { return(Json(ResponseMensage.GetMensage(StatusMensageEnum.warning, e.Message))); } }
public async Task <IActionResult> LoginAjax(LoginViewModel loginVM) { try { if (!ModelState.IsValid) { throw new InvalidModelStateException("Por favor preencha os dados corretamente !"); } var usuario = await _accRepository.GetUserByEmail(loginVM.UserName); if (usuario == null) { throw new NotFoundException("Usuário não encontrado !"); } if (!await _accRepository.PasswordIsValid(usuario, loginVM.Password)) { throw new InvalidArgumentException("Usuário Inválido !"); } await _signInManager.SignInAsync(usuario, true); if (string.IsNullOrEmpty(loginVM.ReturnUrl)) { return(Json(ResponseMensage.GetMensage(StatusMensageEnum.success, "sucesso"))); } return(Json(ResponseMensage.GetMensage(StatusMensageEnum.success, loginVM.ReturnUrl))); } catch (Exception e) { return(Json(ResponseMensage.GetMensage(StatusMensageEnum.warning, e.Message))); } }
public async Task <IActionResult> Remover(int carrinhoId) { try { if (carrinhoId < 1) { return(Json(ResponseMensage.GetMensage(StatusMensageEnum.warning, "O produto não foi encontrado!"))); } var carrinhoResult = await _carrinhoCompraRepository.GetCarrinhoItemById(carrinhoId); if (carrinhoResult == null) { return(Json(ResponseMensage.GetMensage(StatusMensageEnum.warning, "O produto não foi encontrado!"))); } await _carrinhoCompraRepository.Remover(carrinhoResult); return(Json(ResponseMensage.GetMensage(StatusMensageEnum.success, "Item removido com sucesso"))); } catch (Exception) { return(Json(ResponseMensage.GetMensage(StatusMensageEnum.error, "Desculpe ocorreu um erro no servidor"))); } }
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 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))); }