public async Task <TrocaPerfilDto> ModificarPerfil(Guid perfil) { string loginAtual = servicoUsuario.ObterLoginAtual(); string codigoRfAtual = servicoUsuario.ObterRf(); string nomeLoginAtual = servicoUsuario.ObterNomeLoginAtual(); await servicoUsuario.PodeModificarPerfil(perfil, loginAtual); var permissionamentos = await servicoEOL.ObterPermissoesPorPerfil(perfil); if (permissionamentos == null || !permissionamentos.Any()) { throw new NegocioException($"Não foi possível obter os permissionamentos do perfil selecionado"); } else { var listaPermissoes = permissionamentos .Distinct() .Select(a => (Permissao)a) .ToList(); await servicoAbrangencia.Salvar(loginAtual, perfil, false); var usuario = await servicoUsuario.ObterUsuarioLogado(); usuario.DefinirPerfilAtual(perfil); //await servicoTokenJwt.RevogarToken(loginAtual); var tokenStr = servicoTokenJwt.GerarToken(loginAtual, nomeLoginAtual, codigoRfAtual, perfil, listaPermissoes); return(new TrocaPerfilDto { Token = tokenStr, DataHoraExpiracao = servicoTokenJwt.ObterDataHoraExpiracao(), EhProfessor = usuario.EhProfessor(), EhProfessorCj = usuario.EhProfessorCj(), EhProfessorPoa = usuario.EhProfessorPoa(), EhProfessorInfantil = usuario.EhProfessorInfantil(), EhProfessorCjInfantil = usuario.EhProfessorCjInfantil(), EhPerfilProfessor = usuario.EhPerfilProfessor() }); } }