public async Task <IActionResult> ObterDadosDeLeituraDeComunicadosPorTurma([FromQuery] FiltroDadosDeLeituraDeComunicadosPorAlunosTurmaDto filtroDadosDeLeituraDeComunicadosPorAlunosTurmaDto, [FromServices] IObterDadosDeLeituraDeComunicadosPorAlunosDaTurmaUseCase obterDadosDeLeituraDeComunicadosPorAlunosDaTurmaUseCase)
 {
     return(Ok(await obterDadosDeLeituraDeComunicadosPorAlunosDaTurmaUseCase.Executar(filtroDadosDeLeituraDeComunicadosPorAlunosTurmaDto)));
 }
예제 #2
0
        public async Task <IEnumerable <DadosLeituraAlunosComunicadoPorTurmaDto> > Executar(FiltroDadosDeLeituraDeComunicadosPorAlunosTurmaDto request)
        {
            var dadosLeituraAlunosComunicadoPorTurmaDto = await mediator.Send(new ObterDadosDeLeituraDeComunicadosPorAlunosDaTurmaQuery(request.ComunicadoId, request.CodigoTurma));

            var turma = await mediator.Send(new ObterTurmaPorCodigoQuery(request.CodigoTurma.ToString()));

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

            var periodoEscolar = await mediator.Send(new ObterUltimoPeriodoEscolarPorDataQuery(turma.AnoLetivo, turma.ModalidadeTipoCalendario, DateTime.Now.Date));

            if (periodoEscolar == null)
            {
                throw new Exception("Não foi possível localizar o periodo escolar");
            }

            var dadosLeituraAlunosComunicadoPorTurmaComMarcador = new List <DadosLeituraAlunosComunicadoPorTurmaDto>();

            foreach (var item in dadosLeituraAlunosComunicadoPorTurmaDto)
            {
                var aluno = await mediator.Send(new ObterAlunoPorCodigoEolQuery(item.CodigoAluno.ToString(), turma.AnoLetivo));

                if (aluno == null)
                {
                    throw new Exception("Não foi possível localizar o aluno");
                }

                item.Marcador = servicoAluno.ObterMarcadorAluno(aluno, periodoEscolar, false);
                dadosLeituraAlunosComunicadoPorTurmaComMarcador.Add(item);
            }

            return(dadosLeituraAlunosComunicadoPorTurmaComMarcador.ToList().OrderBy(a => a.NomeAluno));
        }