public async Task <IEnumerable <MotivoAusencia> > Handle(ObterMotivosAusenciaQuery request, CancellationToken cancellationToken)
        {
            var motivoAusencia = await repositorioCache.ObterAsync("MotivoAusencia", async() => await repositorioMotivoAusencia.ListarAsync());

            if (motivoAusencia == null)
            {
                throw new NegocioException("Não foi possível recuperar a lista de motivo ausência.");
            }

            return(motivoAusencia);
        }
        public async Task <IActionResult> BuscarDados(int id)
        {
            var chave   = $"teste-redis-{id}";
            var retorno = await repositorioCache.ObterAsync(chave);

            if (string.IsNullOrEmpty(retorno))
            {
                retorno = ObterValor();
                await repositorioCache.SalvarAsync(chave, retorno);
            }


            return(Ok(retorno));
        }
Exemple #3
0
        public async Task <string> Handle(ObterUltimaVersaoQuery request, CancellationToken cancellationToken)
        {
            var versao = await repositorioCache.ObterAsync("versao", false);

            if (string.IsNullOrWhiteSpace(versao))
            {
                string numeroVersao = await servicoGithub.RecuperarUltimaVersao();

                await repositorioCache.SalvarAsync("versao", numeroVersao, 1080, false);

                return(numeroVersao);
            }
            return(versao);
        }
        public async Task <IEnumerable <DisciplinaDto> > ObterDisciplinasParaPlanejamento(FiltroDisciplinaPlanejamentoDto filtroDisciplinaPlanejamentoDto)
        {
            IEnumerable <DisciplinaDto> disciplinasDto = null;
            var usuario = await servicoUsuario.ObterUsuarioLogado();

            var chaveCache             = $"Disciplinas-planejamento-{filtroDisciplinaPlanejamentoDto.CodigoTurma}-{usuario.Login}-{filtroDisciplinaPlanejamentoDto.CodigoDisciplina}";
            var disciplinasCacheString = await repositorioCache.ObterAsync(chaveCache);

            if (!string.IsNullOrWhiteSpace(disciplinasCacheString))
            {
                return(TratarRetornoDisciplinasPlanejamento(JsonConvert.DeserializeObject <IEnumerable <DisciplinaDto> >(disciplinasCacheString), filtroDisciplinaPlanejamentoDto));
            }

            IEnumerable <DisciplinaResposta> disciplinas;

            if (usuario.EhProfessorCj())
            {
                disciplinas = await ObterComponentesCJ(null, filtroDisciplinaPlanejamentoDto.CodigoTurma.ToString(),
                                                       string.Empty,
                                                       filtroDisciplinaPlanejamentoDto.CodigoDisciplina,
                                                       usuario.Login);
            }
            else
            {
                disciplinas = await servicoEOL.ObterDisciplinasParaPlanejamento(filtroDisciplinaPlanejamentoDto.CodigoTurma, usuario.Login, servicoUsuario.ObterPerfilAtual());
            }

            if (disciplinas == null || !disciplinas.Any())
            {
                return(disciplinasDto);
            }
            disciplinasDto = await MapearParaDto(disciplinas, filtroDisciplinaPlanejamentoDto.TurmaPrograma);

            await repositorioCache.SalvarAsync(chaveCache, JsonConvert.SerializeObject(disciplinasDto));

            return(TratarRetornoDisciplinasPlanejamento(disciplinasDto, filtroDisciplinaPlanejamentoDto));
        }
Exemple #5
0
        public async Task <IEnumerable <ObjetivoAprendizagemDto> > Listar()
        {
            List <ObjetivoAprendizagemDto> objetivos;

            var objetivosCacheString = await repositorioCache.ObterAsync("ObjetivosAprendizagem", true);

            if (!string.IsNullOrWhiteSpace(objetivosCacheString))
            {
                return(JsonConvert.DeserializeObject <List <ObjetivoAprendizagemDto> >(objetivosCacheString));
            }

            var objetivosJuremaDto = await servicoJurema.ObterListaObjetivosAprendizagem();

            objetivos = MapearParaDto(objetivosJuremaDto).ToList();

            var tempoExpiracao = int.Parse(configuration.GetSection("ExpiracaoCache").GetSection("ObjetivosAprendizagem").Value);

            await repositorioCache.SalvarAsync("ObjetivosAprendizagem", JsonConvert.SerializeObject(objetivos), tempoExpiracao, true);

            return(objetivos);
        }
Exemple #6
0
        public async Task <List <DisciplinaDto> > ObterComponentesCurricularesPorProfessorETurma(string codigoTurma, bool turmaPrograma)
        {
            List <DisciplinaDto> disciplinasDto;

            var usuarioLogado = await servicoUsuario.ObterUsuarioLogado();

            var chaveCache = $"Disciplinas-{codigoTurma}-{usuarioLogado.PerfilAtual}";

            var dataInicioNovoSGP = await mediator.Send(new ObterParametroSistemaPorTipoQuery(TipoParametroSistema.DataInicioSGP));

            if (!usuarioLogado.EhProfessor())
            {
                var disciplinasCacheString = await repositorioCache.ObterAsync(chaveCache);

                if (!string.IsNullOrWhiteSpace(disciplinasCacheString))
                {
                    return(JsonConvert.DeserializeObject <List <DisciplinaDto> >(disciplinasCacheString));
                }
            }

            var turma = await repositorioTurma.ObterPorCodigo(codigoTurma);

            if (turma == null)
            {
                throw new NegocioException("Não foi possível encontrar a turma");
            }

            if (usuarioLogado.EhProfessorCj())
            {
                var disciplinas = await ObterDisciplinasPerfilCJ(codigoTurma, usuarioLogado.Login);

                disciplinasDto = MapearParaDto(disciplinas, turmaPrograma, turma.EnsinoEspecial)?.OrderBy(c => c.Nome)?.ToList();
            }
            else
            {
                var componentesCurriculares = await servicoEOL.ObterComponentesCurricularesPorCodigoTurmaLoginEPerfil(codigoTurma, usuarioLogado.Login, usuarioLogado.PerfilAtual);

                disciplinasDto = (await repositorioComponenteCurricular.ObterDisciplinasPorIds(
                                      componentesCurriculares?
                                      .Select(a => a.TerritorioSaber ? (a.CodigoComponenteTerritorioSaber == 0 ? a.Codigo : a.CodigoComponenteTerritorioSaber) : a.Codigo).ToArray()))?.OrderBy(c => c.Nome)?.ToList();

                var componentesCurricularesJurema = await repositorioCache.Obter("ComponentesJurema", () => Task.FromResult(repositorioComponenteCurricularJurema.Listar()));

                if (componentesCurricularesJurema == null)
                {
                    throw new NegocioException("Não foi possível recuperar a lista de componentes curriculares.");
                }

                disciplinasDto.ForEach(d =>
                {
                    var componenteEOL            = componentesCurriculares.FirstOrDefault(a => (a.TerritorioSaber && a.CodigoComponenteTerritorioSaber > 0) ? a.CodigoComponenteTerritorioSaber == d.CodigoComponenteCurricular : a.Codigo == d.CodigoComponenteCurricular);
                    d.PossuiObjetivos            = turma.AnoLetivo < Convert.ToInt32(dataInicioNovoSGP) ? false : componenteEOL.PossuiObjetivosDeAprendizagem(componentesCurricularesJurema, turmaPrograma, turma.ModalidadeCodigo, turma.Ano);
                    d.CodigoComponenteCurricular = componenteEOL.Codigo;
                    d.Regencia = componenteEOL.Regencia;
                    if (d.TerritorioSaber)
                    {
                        d.Nome = componenteEOL.Descricao;
                    }
                    d.ObjetivosAprendizagemOpcionais = componenteEOL.PossuiObjetivosDeAprendizagemOpcionais(componentesCurricularesJurema, turma.EnsinoEspecial);
                });

                if (!usuarioLogado.EhProfessor())
                {
                    await repositorioCache.SalvarAsync(chaveCache, JsonConvert.SerializeObject(disciplinasDto));
                }
            }

            return(disciplinasDto);
        }
        public async Task <IEnumerable <ObjetivoAprendizagemDto> > Listar()
        {
            int tempoExpiracao = int.Parse(configuration.GetSection("ExpiracaoCache").GetSection("ObjetivosAprendizagem").Value);

            return(await repositorioCache.ObterAsync("ObjetivosAprendizagem", () => ListarSemCache(), tempoExpiracao, true));
        }