public async Task <RespostaApi> Executar(RedefinirSenhaDto dto) { var usuario = await mediator.Send(new ObterUsuarioPorTokenRedefinicaoQuery(dto.Token)); usuario.ValidarTokenRedefinicao(dto.Token); var usuarioCore = await mediator.Send(new ObterUsuarioCoreSSOQuery(usuario.Cpf)); if (usuarioCore == null) { throw new NegocioException("Usuário não encontrado no CoreSSO"); } usuarioCore.AlterarSenha(dto.Senha); await Validar5UltimasSenhas(usuarioCore); await AlterarSenhaUsuarioCoreSSO(usuarioCore); await IncluirSenhaHistorico(usuarioCore); usuario.FinalizarRedefinicaoSenha(); await mediator.Send(new SalvarUsuarioCommand(usuario)); return(await AutenticarUsuario(dto, usuario)); }
private async Task <RespostaApi> AutenticarUsuario(RedefinirSenhaDto dto, Dominio.Entidades.Usuario usuario) { var autenticacao = await mediator.Send(new AutenticarUsuarioCommand(usuario.Cpf, dto.Senha)); if (!autenticacao.Ok) { throw new NegocioException(string.Join(',', autenticacao.Erros)); } var token = await mediator.Send(new CriarTokenCommand(usuario.Cpf)); await mediator.Send(new UsuarioDispositivoCommand(usuario.Cpf, dto.DispositivoId)); ((RespostaAutenticar)autenticacao.Data).Token = token; return(autenticacao); }
public async Task <ActionResult <RespostaApi> > RedefinirSenha([FromBody] RedefinirSenhaDto redefinirSenhaDto, [FromServices] IRedefinirSenhaUseCase redefinirSenhaUseCase) { return(await redefinirSenhaUseCase.Executar(redefinirSenhaDto)); }