public async Task <PlanoAulaRetornoDto> ObterPlanoAulaPorAula(long aulaId) { if (!await VerificarPlanoAnualExistente(aulaId)) { throw new NegocioException("Não foi possível carregar o plano de aula porque não há plano anual cadastrado"); } PlanoAulaRetornoDto planoAulaDto = new PlanoAulaRetornoDto(); // Busca plano de aula por data e disciplina da aula var plano = await repositorio.ObterPlanoAulaPorAula(aulaId); var aulaDto = await consultasAula.BuscarPorId(aulaId); var atividadeAvaliativa = await repositorioAtividadeAvaliativa.ObterAtividadeAvaliativa(aulaDto.DataAula.Date, aulaDto.DisciplinaId, aulaDto.TurmaId, aulaDto.UeId); if (plano != null) { planoAulaDto = MapearParaDto(plano) ?? new PlanoAulaRetornoDto(); // Carrega objetivos aprendizagem Jurema var planoAnual = await consultasPlanoAnual.ObterPorEscolaTurmaAnoEBimestre(new FiltroPlanoAnualDto() { AnoLetivo = aulaDto.DataAula.Year, Bimestre = (aulaDto.DataAula.Month + 2) / 3, ComponenteCurricularEolId = long.Parse(aulaDto.DisciplinaId), EscolaId = aulaDto.UeId, TurmaId = aulaDto.TurmaId }, seNaoExistirRetornaNovo : false); // Carrega objetivos já cadastrados no plano de aula var objetivosAula = await consultasObjetivosAula.ObterObjetivosPlanoAula(plano.Id); if (planoAnual != null) { // Filtra objetivos anual com os objetivos da aula planoAulaDto.ObjetivosAprendizagemAula = planoAnual.ObjetivosAprendizagem .Where(c => objetivosAula.Any(a => a.ObjetivoAprendizagemPlano.ObjetivoAprendizagemJuremaId == c.Id)) .ToList(); } } var periodoEscolar = consultasPeriodoEscolar.ObterPorTipoCalendario(aulaDto.TipoCalendarioId); var periodo = periodoEscolar.Periodos.FirstOrDefault(p => p.PeriodoInicio <= aulaDto.DataAula && p.PeriodoFim >= aulaDto.DataAula); var planoAnualId = await consultasPlanoAnual.ObterIdPlanoAnualPorAnoEscolaBimestreETurma( aulaDto.DataAula.Year, aulaDto.UeId, long.Parse(aulaDto.TurmaId), periodo.Bimestre, long.Parse(aulaDto.DisciplinaId)); // Carrega informações da aula para o retorno planoAulaDto.PossuiPlanoAnual = planoAnualId > 0; planoAulaDto.AulaId = aulaDto.Id; planoAulaDto.QtdAulas = aulaDto.Quantidade; planoAulaDto.IdAtividadeAvaliativa = atividadeAvaliativa?.Id; planoAulaDto.PodeLancarNota = planoAulaDto.IdAtividadeAvaliativa.HasValue && aulaDto.DataAula.Date <= DateTime.Now.Date; return(planoAulaDto); }
public async Task Registrar(FrequenciaDto frequenciaDto) { List <RegistroAusenciaAluno> registrosAusenciaAlunos = ObtemListaDeAusencias(frequenciaDto); await servicoFrequencia.Registrar(frequenciaDto.AulaId, registrosAusenciaAlunos); var alunos = frequenciaDto.ListaFrequencia.Select(a => a.CodigoAluno).ToList(); if (alunos == null || !alunos.Any()) { throw new NegocioException("A lista de alunos a turma e a disciplina devem ser informados para calcular a frequência."); } var aula = await consultasAula.BuscarPorId(frequenciaDto.AulaId); Cliente.Executar <IServicoCalculoFrequencia>(c => c.CalcularFrequenciaPorTurma(alunos, aula.DataAula, aula.TurmaId, aula.DisciplinaId)); }
public async Task Registrar(FrequenciaDto frequenciaDto) { List <RegistroAusenciaAluno> registrosAusenciaAlunos = ObtemListaDeAusencias(frequenciaDto); await servicoFrequencia.Registrar(frequenciaDto.AulaId, registrosAusenciaAlunos); var alunos = frequenciaDto.ListaFrequencia.Select(a => a.CodigoAluno).ToList(); if (alunos == null || !alunos.Any()) { throw new NegocioException("A lista de alunos a turma e a disciplina devem ser informados para calcular a frequência."); } var aula = await consultasAula.BuscarPorId(frequenciaDto.AulaId); var bimestre = await mediator.Send(new ObterBimestrePorTurmaCodigoQuery(aula.TurmaId, aula.DataAula)); await mediator.Send(new IncluirFilaCalcularFrequenciaPorTurmaCommand(alunos, aula.DataAula, aula.TurmaId, aula.DisciplinaId, bimestre)); await mediator.Send(new ExcluirPendenciaAulaCommand(aula.Id, TipoPendencia.Frequencia)); }
public async Task <IActionResult> BuscarPorId(long id, [FromServices] IConsultasAula consultas) { return(Ok(await consultas.BuscarPorId(id))); }
public IActionResult BuscarPorId(long id, [FromServices] IConsultasAula consultas) { var aula = consultas.BuscarPorId(id); return(Ok(aula)); }