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 <PerfisPorPrioridadeDto> DefinirPerfilPrioritario(IEnumerable <Guid> perfis, Usuario usuario) { var perfisUsuario = repositorioPrioridadePerfil.ObterPerfisPorIds(perfis); var possuiTurmaAtiva = repositorioAbrangencia.PossuiAbrangenciaTurmaAtivaPorLogin(usuario.Login); usuario.DefinirPerfis(perfisUsuario); var ehProfCJSemTurmaTitular = await VerificarProfCJSemTurmaTitular(usuario.Login, usuario.PossuiPerfilCJPrioritario()); usuario.DefinirPerfilAtual(usuario.ObterPerfilPrioritario(possuiTurmaAtiva, ehProfCJSemTurmaTitular)); var perfisPorPrioridade = new PerfisPorPrioridadeDto { PerfilSelecionado = usuario.PerfilAtual, Perfis = MapearPerfisParaDto(perfisUsuario), PossuiPerfilSmeOuDre = usuario.PossuiPerfilSmeOuDre(), PossuiPerfilSme = usuario.PossuiPerfilSme(), PossuiPerfilDre = usuario.PossuiPerfilDre(), EhProfessor = usuario.EhProfessor(), EhProfessorCj = usuario.EhProfessorCj(), EhProfessorPoa = usuario.EhProfessorPoa() }; return(perfisPorPrioridade); }
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); }
public async Task <IEnumerable <PrioridadePerfil> > ObterPerfisUsuario(string 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); return(perfisDoUsuario); }
public PerfisPorPrioridadeDto DefinirPerfilPrioritario(IEnumerable <Guid> perfis, Usuario usuario) { var perfisUsuario = repositorioPrioridadePerfil.ObterPerfisPorIds(perfis); usuario.DefinirPerfis(perfisUsuario); var perfisPorPrioridade = new PerfisPorPrioridadeDto { PerfilSelecionado = usuario.ObterPerfilPrioritario(), Perfis = MapearPerfisParaDto(perfisUsuario), PossuiPerfilSmeOuDre = usuario.PossuiPerfilSmeOuDre(), PossuiPerfilSme = usuario.PossuiPerfilSme(), PossuiPerfilDre = usuario.PossuiPerfilDre() }; return(perfisPorPrioridade); }