コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }