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)));
            }
        }
Esempio n. 3
0
        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")));
            }
        }
Esempio n. 4
0
        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)));
            }
        }
Esempio n. 5
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)));
        }