public async Task <RespostaApi> Handle(DadosAlunoCommand request, CancellationToken cancellationToken)
            {
                var dadosDosAlunos = await alunoRepositorio.ObterDadosAlunos(request.Cpf);

                if (dadosDosAlunos == null || !dadosDosAlunos.Any())
                {
                    throw new NegocioException("Este CPF não está relacionado como responsável de um aluno ativo na rede municipal.");
                }

                var turmasCodigo = dadosDosAlunos.Select(a => a.CodigoTurma.ToString())
                                   .Distinct()
                                   .ToArray();

                var turmasModalidade = await mediator.Send(new ObterTurmasModalidadesPorCodigosQuery(turmasCodigo));

                dadosDosAlunos.ForEach(dadoDoAluno =>
                {
                    var modalidadeDaTurma           = turmasModalidade.FirstOrDefault(a => a.TurmaCodigo == dadoDoAluno.CodigoTurma);
                    dadoDoAluno.ModalidadeCodigo    = modalidadeDaTurma.ModalidadeCodigo;
                    dadoDoAluno.ModalidadeDescricao = modalidadeDaTurma.ModalidadeDescricao;
                });

                var tipoEscola =
                    dadosDosAlunos
                    .GroupBy(g => new { g.ModalidadeCodigo, g.ModalidadeDescricao })
                    .Select(s => new ListaEscola
                {
                    Modalidade       = s.Key.ModalidadeDescricao,
                    ModalidadeCodigo = s.Key.ModalidadeCodigo,
                    Alunos           = dadosDosAlunos
                                       .Where(w => w.ModalidadeCodigo == s.Key.ModalidadeCodigo)
                                       .Select(a => new Dominio.Entidades.Aluno
                    {
                        CodigoEol       = a.CodigoEol,
                        Nome            = a.Nome,
                        NomeResponsavel = a.TipoResponsavel == TipoResponsavelEnum.Proprio_Aluno &&
                                          !string.IsNullOrWhiteSpace(a.NomeSocial) ?
                                          a.NomeSocial.Trim() :
                                          a.NomeResponsavel.Trim(),
                        CpfResponsavel      = a.CpfResponsavel,
                        NomeSocial          = a.NomeSocial,
                        DataNascimento      = a.DataNascimento.Date,
                        CodigoTipoEscola    = a.CodigoTipoEscola,
                        CodigoEscola        = a.CodigoEscola,
                        DescricaoTipoEscola = a.DescricaoTipoEscola,
                        Escola                = a.Escola,
                        CodigoDre             = a.CodigoDre,
                        SiglaDre              = a.SiglaDre,
                        CodigoTurma           = a.CodigoTurma,
                        Turma                 = a.Turma,
                        SituacaoMatricula     = a.SituacaoMatricula,
                        DataSituacaoMatricula = a.DataSituacaoMatricula,
                        SerieResumida         = a.SerieResumida
                    })
                });

                return(RespostaApi.Sucesso(tipoEscola));
            }
Exemplo n.º 2
0
        public async Task <IEnumerable <AlunoRespostaEol> > Handle(ObterDadosAlunosQuery request, CancellationToken cancellationToken)
        {
            var alunos = await _alunoRepositorio.ObterDadosAlunos(request.Cpf);

            if (alunos == null || !alunos.Any())
            {
                throw new NegocioException("Este CPF não consta como responsável de um estudante ativo nesta Unidade Escolar.");
            }

            return(alunos);
        }
Exemplo n.º 3
0
        public async Task <IEnumerable <AlunoRespostaEol> > Handle(ObterDadosAlunosQuery request, CancellationToken cancellationToken)
        {
            var alunos = await _alunoRepositorio.ObterDadosAlunos(request.Cpf);

            if (alunos == null || !alunos.Any())
            {
                throw new NegocioException("Este CPF não está relacionado como responsável de um aluno ativo na rede municipal.");
            }

            return(alunos);
        }
Exemplo n.º 4
0
            public async Task <RespostaApi> Handle
                (DadosAlunoCommand request, CancellationToken cancellationToken)
            {
                var grupos = await _repositorioGrupoComunicado.ObterTodos();

                var resultado = await _repository.ObterDadosAlunos(request.Cpf);

                if (resultado == null || !resultado.Any())
                {
                    throw new NegocioException("Este CPF não está relacionado como responsável de um aluno ativo na rede municipal.");
                }

                resultado.ForEach(x => { var g = SelecionarGrupos(x.CodigoTipoEscola, x.CodigoEtapaEnsino, x.CodigoCicloEnsino, grupos); x.Grupo = g.gupo; x.CodigoGrupo = g.codigo; });

                var tipoEscola =
                    resultado
                    .GroupBy(g => new { g.Grupo, g.CodigoGrupo })
                    .Select(s => new ListaEscola
                {
                    Grupo       = s.Key.Grupo,
                    CodigoGrupo = s.Key.CodigoGrupo,
                    Alunos      = resultado
                                  .Where(w => w.CodigoGrupo == s.Key.CodigoGrupo)
                                  .Select(a => new Dominio.Entidades.Aluno
                    {
                        CodigoEol       = a.CodigoEol,
                        Nome            = a.Nome,
                        NomeResponsavel = a.TipoResponsavel == TipoResponsavelEnum.Proprio_Aluno &&
                                          !string.IsNullOrWhiteSpace(a.NomeSocial) ?
                                          a.NomeSocial :
                                          a.NomeResponsavel,
                        CpfResponsavel      = a.CpfResponsavel,
                        NomeSocial          = a.NomeSocial,
                        DataNascimento      = a.DataNascimento.Date,
                        CodigoTipoEscola    = a.CodigoTipoEscola,
                        CodigoEscola        = a.CodigoEscola,
                        DescricaoTipoEscola = a.DescricaoTipoEscola,
                        Escola                = a.Escola,
                        CodigoDre             = a.CodigoDre,
                        SiglaDre              = a.SiglaDre,
                        CodigoTurma           = a.CodigoTurma,
                        Turma                 = a.Turma,
                        SituacaoMatricula     = a.SituacaoMatricula,
                        DataSituacaoMatricula = a.DataSituacaoMatricula
                    })
                });

                return(RespostaApi.Sucesso(tipoEscola));
            }
        public async Task <IEnumerable <EventoRespostaDto> > Handle(ObterEventosAlunoPorMesQuery request, CancellationToken cancellationToken)
        {
            var aluno = (await alunoRepositorio.ObterDadosAlunos(request.Cpf)).Where(a => a.CodigoEol == request.CodigoAluno).FirstOrDefault();

            var turmasModalidade = await mediator.Send(new ObterTurmasModalidadesPorCodigosQuery(new string[] { aluno.CodigoTurma.ToString() }));

            if (turmasModalidade.Any())
            {
                var modalidadeDaTurma = turmasModalidade.FirstOrDefault();
                aluno.ModalidadeCodigo    = modalidadeDaTurma.ModalidadeCodigo;
                aluno.ModalidadeDescricao = modalidadeDaTurma.ModalidadeDescricao;
            }

            var modalidade = 0;

            switch (aluno.ModalidadeCodigo)
            {
            case 1:
                modalidade = 3;
                break;

            case 3:
                modalidade = 2;
                break;

            case 5:
            case 6:
                modalidade = 1;
                break;

            default:
                modalidade = aluno.ModalidadeCodigo;
                break;
            }
            var eventos = await eventoRepositorio.ObterPorDreUeTurmaMes(aluno.CodigoDre, aluno.CodigoEscola, aluno.CodigoTurma.ToString(), modalidade, request.MesAno);

            var mesInicial  = parametrosEscolaAquiRepositorio.ObterInt("MesInicioTransferenciaEventos", 3);
            var diaInicial  = parametrosEscolaAquiRepositorio.ObterInt("DiaInicioTransferenciaEventos", 1);
            var dataInicial = new DateTime(DateTime.Now.Year, mesInicial, diaInicial);

            if (DateTime.Today < dataInicial)
            {
                var tiposEventosPermitidos = new int[] { (int)TipoEvento.ReuniaoResponsaveis, (int)TipoEvento.Feriado, (int)TipoEvento.Avaliacao };
                eventos = eventos.Where(e => tiposEventosPermitidos.Contains(e.tipo_evento));
            }

            var eventosResposta = eventos
                                  .Select(
                e => new EventoRespostaDto
            {
                Nome                 = e.nome,
                Descricao            = e.descricao,
                DiaSemana            = e.data_inicio.ToString("ddd", new CultureInfo("pt-BR")),
                DataInicio           = e.data_inicio,
                DataFim              = e.data_fim,
                AnoLetivo            = e.ano_letivo,
                TipoEvento           = e.tipo_evento,
                ComponenteCurricular = e.componente_curricular
            }
                ).Distinct();

            return(eventosResposta);
        }