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)); }
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)); }
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); }
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)); }