Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }