public async Task <IActionResult> Login([FromBody] UsuarioLoginViewModel model)
        {
            var cliente = await _clienteRepository.ObterPorEmail(model.Email);

            if (cliente == null)
            {
                NotificarErro("Login", "Cliente não encontrado ou senha incorreta.");
                return(BadRequest());
            }

            if (!ClienteSenha.VerificarSenha(model.Senha, cliente.Senha))
            {
                NotificarErro("Login", "Cliente não encontrado ou senha incorreta.");
                return(BadRequest());
            }

            return(Response(await _jwtTokenGenerate.GerarToken(cliente)));
        }
Example #2
0
        public async Task CancelarConta(Guid id, string senha)
        {
            var cliente = await ObterCliente(id, "CancelarConta");

            if (cliente == null)
            {
                return;
            }

            if (!ClienteSenha.VerificarSenha(senha, cliente.Senha))
            {
                NotificarErro("CancelarConta", "A senha do cliente está incorreta.");
                return;
            }

            cliente.CancelarConta();

            await _clienteRepository.Atualizar(cliente);

            await _mediator.RaiseEvent(ClienteAdapter.ToClienteContaCanceladaEvent(cliente));
        }
Example #3
0
        public async Task AlterarSenha(Guid id, string senhaAtual, string novaSenha, bool ignorarSenhaAtual = false)
        {
            var cliente = await ObterCliente(id, "AlterarSenha");

            if (cliente == null)
            {
                return;
            }

            if (!ignorarSenhaAtual)
            {
                if (!ClienteSenha.VerificarSenha(senhaAtual, cliente.Senha))
                {
                    NotificarErro("AlterarSenha", "A senha atual do cliente está incorreta.");
                    return;
                }
            }

            cliente.AlterarSenha(ClienteSenha.Factory.NovaSenha(novaSenha));

            if (!ClienteValido(cliente))
            {
                return;
            }

            var validation = new ClienteAptoParaAtualizarValidation(cliente, _clienteRepository).Validate(cliente);

            if (!validation.IsValid)
            {
                NotificarValidacoesErro(validation);
                return;
            }

            await _clienteRepository.Atualizar(cliente);

            await _mediator.RaiseEvent(new ClienteSenhaAlteradaEvent(cliente.Id));
        }