Exemple #1
0
        private async Task <List <Aluno> > ObterDadosAlunos(FiltroRelatorioRecuperacaoParalelaDto filtros)
        {
            var alunos = new List <Aluno>();

            if (!string.IsNullOrEmpty(filtros.AlunoCodigo))
            {
                var aluno = await mediator.Send(new ObterDadosAlunoQuery()
                {
                    CodigoAluno = filtros.AlunoCodigo,
                    CodigoTurma = filtros.TurmaCodigo
                });

                if (aluno == null)
                {
                    throw new NegocioException($"Não foi possível localizar dados do aluno {filtros.AlunoCodigo}");
                }

                alunos.Add(aluno);
            }
            else
            {
                alunos = (await mediator.Send(new ObterAlunosPorTurmaQuery()
                {
                    TurmaCodigo = filtros.TurmaCodigo
                })).ToList();
            }

            return(alunos);
        }
Exemple #2
0
        private async Task <DreUe> ObterDadosDreUe(FiltroRelatorioRecuperacaoParalelaDto filtros)
        {
            var dreUe = await mediator.Send(new ObterDreUePorTurmaQuery()
            {
                CodigoTurma = filtros.TurmaCodigo
            });

            if (dreUe == null)
            {
                throw new NegocioException($"Não foi possível localizar dados do Dre e Ue para a turma {filtros.TurmaCodigo}");
            }
            return(dreUe);
        }
Exemple #3
0
        public async Task <bool> Executar(FiltroRelatorioRecuperacaoParalelaDto filtro)
        {
            var usuarioLogado = await mediator.Send(new ObterUsuarioLogadoQuery());

            filtro.UsuarioNome = usuarioLogado.Nome;
            filtro.UsuarioRf   = usuarioLogado.CodigoRf;

            if (usuarioLogado == null)
            {
                throw new NegocioException("Não foi possível identificar o usuário");
            }

            await mediator.Send(new ValidaSeExisteTurmaPorCodigoQuery(filtro.TurmaCodigo));

            return(await mediator.Send(new GerarRelatorioCommand(TipoRelatorio.RecuperacaoParalela, filtro, usuarioLogado)));
        }
Exemple #4
0
        private static void PreencherAlunos(List <Aluno> alunos, FiltroRelatorioRecuperacaoParalelaDto filtros, IEnumerable <RelatorioRecuperacaoParalelaRetornoQueryDto> secoes,
                                            RelatorioRecuperacaoParalelaDto relatorioRecuperacaoParalelaDto, IEnumerable <AlunoTurmaRegularRetornoDto> turmaRegularAlunos, Turma turma)
        {
            var alunosCodigosComSecao = secoes.Select(a => int.Parse(a.AlunoCodigo)).Distinct();

            var alunosDto = new List <RelatorioRecuperacaoParalelaAlunoDto>();

            foreach (var item in alunos.Where(a => alunosCodigosComSecao.Contains(a.CodigoAluno)))
            {
                var turmaRegular = turmaRegularAlunos.FirstOrDefault(a => a.AlunoCodigo == item.CodigoAluno)?.TurmaNome;

                var nomeAlunoComNumeroChamada = $"{item.NomeAluno} Nº {item.NumeroAlunoChamada}";

                var relatorioRecuperacaoParalelaAlunoDto = new RelatorioRecuperacaoParalelaAlunoDto(
                    nomeAlunoComNumeroChamada, turma.Nome, item.DataNascimento.ToString("dd/MM/yyyy"),
                    item.CodigoAluno.ToString(), turmaRegular.ToString(), item.SituacaoMatricula);

                // Secoes
                AtribuirSecoes(secoes.Where(a => a.TurmaCodigo == filtros.TurmaCodigo && a.AlunoCodigo == item.CodigoAluno.ToString()), relatorioRecuperacaoParalelaAlunoDto);
                alunosDto.Add(relatorioRecuperacaoParalelaAlunoDto);
            }

            relatorioRecuperacaoParalelaDto.Alunos = alunosDto.OrderBy(x => x.AlunoNome).ToList();
        }
 public async Task <IActionResult> Gerar(FiltroRelatorioRecuperacaoParalelaDto filtro, [FromServices] IRelatorioRecuperacaoParalelaUseCase relatorioRecuperacaoParalelaUseCase)
 {
     return(Ok(await relatorioRecuperacaoParalelaUseCase.Executar(filtro)));
 }