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))); }
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)); }
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)); }