public async Task <IActionResult> ObterDadosDeLeituraDeComunicadosPorTurma([FromQuery] FiltroDadosDeLeituraDeComunicadosPorAlunosTurmaDto filtroDadosDeLeituraDeComunicadosPorAlunosTurmaDto, [FromServices] IObterDadosDeLeituraDeComunicadosPorAlunosDaTurmaUseCase obterDadosDeLeituraDeComunicadosPorAlunosDaTurmaUseCase) { return(Ok(await obterDadosDeLeituraDeComunicadosPorAlunosDaTurmaUseCase.Executar(filtroDadosDeLeituraDeComunicadosPorAlunosTurmaDto))); }
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)); }