public async Task <RespostaApi> Executar(NovaSenhaDto novaSenhaDto) { var usuario = await mediator.Send(new ObterUsuarioQuery() { Id = novaSenhaDto.Id }); if (usuario == null) { throw new NegocioException("Usuário não encontrado"); } if (!usuario.PrimeiroAcesso) { throw new NegocioException("Somente é possivel utilizar essa função quando for o primeiro acesso do usuário"); } var usuarioCoreSSO = await mediator.Send(new ObterUsuarioCoreSSOQuery(usuario.Cpf)); await CriarUsuarioOuAssociarGrupo(mediator, novaSenhaDto, usuario, usuarioCoreSSO); var atualizarPrimeiroAcesso = MapearAtualizarPrimeiroAcessoCommand(usuario); await mediator.Send(atualizarPrimeiroAcesso); await IncluirSenhaHistorico(usuario.Cpf); return(RespostaApi.Sucesso()); }
private async Task AssociarGrupoEAlterarSenha(NovaSenhaDto novaSenhaDto, RetornoUsuarioCoreSSO usuarioCoreSSO) { usuarioCoreSSO.AlterarSenha(novaSenhaDto.NovaSenha); await mediator.Send(new AssociarGrupoUsuarioCommand(usuarioCoreSSO)); await mediator.Send(new AlterarSenhaUsuarioCoreSSOCommand(usuarioCoreSSO.UsuId, usuarioCoreSSO.Senha)); }
private async Task CriarUsuarioOuAssociarGrupo(NovaSenhaDto novaSenhaDto, Dominio.Entidades.Usuario usuario, RetornoUsuarioCoreSSO usuarioCoreSSO, string nomeUsuario) { if (usuarioCoreSSO != null) { await AssociarGrupoEAlterarSenha(novaSenhaDto, usuarioCoreSSO); } else { await CriarUsuario(novaSenhaDto, usuario, nomeUsuario); } }
private async Task CriarUsuarioOuAssociarGrupo(IMediator mediator, NovaSenhaDto novaSenhaDto, Dominio.Entidades.Usuario usuario, RetornoUsuarioCoreSSO usuarioCoreSSO) { if (usuarioCoreSSO != null) { await AssociarGrupoEAlterarSenha(mediator, novaSenhaDto, usuarioCoreSSO); } else { await CriarUsuario(mediator, novaSenhaDto, usuario); } }
private CriarUsuarioCoreSSOCommand MapearCriarUsuarioCoreSSOCommand(NovaSenhaDto novaSenhaDto, Dominio.Entidades.Usuario usuario, string nomeUsuario) { return(new CriarUsuarioCoreSSOCommand() { Usuario = new UsuarioCoreSSODto { Cpf = usuario.Cpf, Nome = nomeUsuario, Senha = novaSenhaDto.NovaSenha, } }); }
private async Task CriarUsuario(NovaSenhaDto novaSenhaDto, Dominio.Entidades.Usuario usuario, string nomeUsuario) { var comandoCriaUsuario = MapearCriarUsuarioCoreSSOCommand(novaSenhaDto, usuario, nomeUsuario); await mediator.Send(comandoCriaUsuario); }
public async Task <ActionResult <RespostaApi> > PrimeiroAcesso([FromBody] NovaSenhaDto novaSenhaDto, [FromServices] IPrimeiroAcessoUseCase criarUsuarioPrimeiroAcessoUseCase) { return(Ok(await criarUsuarioPrimeiroAcessoUseCase.Executar(novaSenhaDto))); }