public async Task DeveObterDisciplinasParaPlanejamento() { var disciplinas = new List <DisciplinaResposta> { new DisciplinaResposta { CodigoComponenteCurricular = 1, Nome = "regencia", Regencia = true }, new DisciplinaResposta { CodigoComponenteCurricular = 1, Nome = "nao regencia", Regencia = false } }; servicoEol.Setup(c => c.ObterDisciplinasParaPlanejamento(It.IsAny <long>(), It.IsAny <string>(), It.IsAny <Guid>())) .Returns(Task.FromResult <IEnumerable <DisciplinaResposta> >(disciplinas)); servicoUsuario.Setup(c => c.ObterRf()) .Returns("123"); var filtro = new FiltroDisciplinaPlanejamentoDto { CodigoTurma = 10, Regencia = false }; var retorno = await consultasDisciplinas.ObterDisciplinasParaPlanejamento(filtro); Assert.True(retorno != null); Assert.True(retorno.Any()); Assert.Contains(retorno, c => c.Regencia); Assert.Contains(retorno, c => !c.Regencia); }
public async Task <IEnumerable <DisciplinaDto> > ObterDisciplinasParaPlanejamento(FiltroDisciplinaPlanejamentoDto filtroDisciplinaPlanejamentoDto) { IEnumerable <DisciplinaDto> disciplinasDto = null; var login = servicoUsuario.ObterLoginAtual(); var chaveCache = $"Disciplinas-planejamento-{filtroDisciplinaPlanejamentoDto.CodigoTurma}-{login}"; var disciplinasCacheString = repositorioCache.Obter(chaveCache); if (!string.IsNullOrWhiteSpace(disciplinasCacheString)) { return(TratarRetornoDisciplinasPlanejamento(JsonConvert.DeserializeObject <IEnumerable <DisciplinaDto> >(disciplinasCacheString), filtroDisciplinaPlanejamentoDto)); } var disciplinas = await servicoEOL.ObterDisciplinasParaPlanejamento(filtroDisciplinaPlanejamentoDto.CodigoTurma, login, servicoUsuario.ObterPerfilAtual()); if (disciplinas == null || !disciplinas.Any()) { return(disciplinasDto); } disciplinasDto = await MapearParaDto(disciplinas); await repositorioCache.SalvarAsync(chaveCache, JsonConvert.SerializeObject(disciplinasDto)); return(TratarRetornoDisciplinasPlanejamento(disciplinasDto, filtroDisciplinaPlanejamentoDto)); }
private IEnumerable <DisciplinaDto> TratarRetornoDisciplinasPlanejamento(IEnumerable <DisciplinaDto> disciplinas, FiltroDisciplinaPlanejamentoDto filtroDisciplinaPlanejamentoDto) { if (filtroDisciplinaPlanejamentoDto.CodigoDisciplina == 0) { return(disciplinas); } if (filtroDisciplinaPlanejamentoDto.Regencia) { return(disciplinas.Where(x => codigosDisciplinasRegencia.Contains(x.CodigoComponenteCurricular))); } return(disciplinas.Where(x => x.CodigoComponenteCurricular == filtroDisciplinaPlanejamentoDto.CodigoDisciplina)); }
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 <IActionResult> ObterDisciplinasParaPlanejamento(long codigoTurma, [FromQuery] FiltroDisciplinaPlanejamentoDto filtroDisciplinaPlanejamentoDto, [FromServices] IConsultasDisciplina consultasDisciplina) { filtroDisciplinaPlanejamentoDto.CodigoTurma = codigoTurma; var retorno = await consultasDisciplina.ObterDisciplinasParaPlanejamento(filtroDisciplinaPlanejamentoDto); return(Ok(retorno)); }