public async Task <Usuario> ObterUsuarioLogado() { var login = ObterLoginAtual(); var usuario = repositorioUsuario.ObterPorCodigoRfLogin(string.Empty, login); if (usuario == null) { throw new NegocioException("Usuário não encontrado."); } var chaveRedis = $"perfis-usuario-{login}"; var perfisUsuarioString = repositorioCache.Obter(chaveRedis); IEnumerable <PrioridadePerfil> perfisDoUsuario = null; if (string.IsNullOrWhiteSpace(perfisUsuarioString)) { var perfisPorLogin = await servicoEOL.ObterPerfisPorLogin(login); if (perfisPorLogin == null) { throw new NegocioException($"Não foi possível obter os perfis do usuário {login}"); } perfisDoUsuario = repositorioPrioridadePerfil.ObterPerfisPorIds(perfisPorLogin.Perfis); _ = repositorioCache.SalvarAsync(chaveRedis, JsonConvert.SerializeObject(perfisDoUsuario)); } else { perfisDoUsuario = JsonConvert.DeserializeObject <IEnumerable <PrioridadePerfil> >(perfisUsuarioString); } usuario.DefinirPerfis(perfisDoUsuario); return(usuario); }
public async Task <IEnumerable <PrioridadePerfil> > ObterPerfisUsuario(string login) { var chaveRedis = $"perfis-usuario-{login}"; var perfisPorLogin = await servicoEOL.ObterPerfisPorLogin(login); if (perfisPorLogin == null) { throw new NegocioException($"Não foi possível obter os perfis do usuário {login}"); } var perfisDoUsuario = repositorioPrioridadePerfil.ObterPerfisPorIds(perfisPorLogin.Perfis); _ = repositorioCache.SalvarAsync(chaveRedis, JsonConvert.SerializeObject(perfisDoUsuario)); return(perfisDoUsuario); }
private async Task <IEnumerable <Guid> > ValidarPerfilCJ(string codigoRF, Guid codigoUsuarioCore, IEnumerable <Guid> perfilsAtual, string login) { var atribuicaoCJ = repositorioAtribuicaoCJ.ObterAtribuicaoAtiva(codigoRF); if (atribuicaoCJ != null && atribuicaoCJ.Any()) { return(perfilsAtual); } var atribuicaoEsporadica = repositorioAtribuicaoEsporadica.ObterUltimaPorRF(codigoRF); if (atribuicaoEsporadica != null && !string.IsNullOrWhiteSpace(atribuicaoEsporadica.ProfessorRf) && atribuicaoEsporadica.DataFim > DateTime.Today) { return(perfilsAtual); } await servicoEOL.RemoverCJSeNecessario(codigoUsuarioCore); var usuarioEol = await servicoEOL.ObterPerfisPorLogin(login); return(usuarioEol.Perfis); }
public async Task <UsuarioEolAutenticacaoRetornoDto> ObterPerfilsUsuarioPorLogin(string login) { return(await servicoEOL.ObterPerfisPorLogin(login)); }