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)); }
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); }
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); }
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); }