public async Task <PlanoAulaObjetivosAprendizagemDto> ObterPlanoAulaEObjetivosAprendizagem(long aulaId) { var query = @"select pa.id, pa.descricao, pa.desenvolvimento_aula as DesenvolvimentoAula, pa.recuperacao_aula as RecuperacaoAula, pa.licao_casa as LicaoCasa, pa.migrado, pa.criado_em as CriadoEm, pa.alterado_em as AlteradoEm, pa.criado_por as CriadoPor, pa.alterado_por as AlteradoPor, pa.criado_rf as CriadoRf, pa.alterado_rf as AlteradoRf, a.id as AulaId, a.ue_id as UeId, a.disciplina_id as DisciplinaId, a.turma_id as TurmaId, a.quantidade, a.tipo_calendario_id as TipoCalendarioId, a.data_aula as DataAula, oaa.componente_curricular_id as id, oa.id, oa.descricao, oa.codigo, oa.ano_turma as Ano, oa.componente_curricular_id as IdComponenteCurricular from aula a inner join plano_aula pa on a.id = pa.aula_id left join objetivo_aprendizagem_aula oaa on pa.id = oaa.plano_aula_id left join objetivo_aprendizagem oa on oaa.objetivo_aprendizagem_id = oa.id where a.id = @aulaId"; var lookup = new Dictionary <long, PlanoAulaObjetivosAprendizagemDto>(); await database.Conexao.QueryAsync <PlanoAulaObjetivosAprendizagemDto, long?, ObjetivoAprendizagemDto, PlanoAulaObjetivosAprendizagemDto>(query, (planoAulaObjetivosAprendizagemDto, componenteId, objetivoAprendizagemDto) => { var retorno = new PlanoAulaObjetivosAprendizagemDto(); if (!lookup.TryGetValue(planoAulaObjetivosAprendizagemDto.Id, out retorno)) { retorno = planoAulaObjetivosAprendizagemDto; lookup.Add(planoAulaObjetivosAprendizagemDto.Id, retorno); } var objetivoComponente = retorno.ObjetivosAprendizagemComponente.FirstOrDefault(c => c.ComponenteCurricularId == componenteId); if (objetivoComponente == null && componenteId.HasValue) { objetivoComponente = new ObjetivosAprendizagemPorComponenteDto(); objetivoComponente.ComponenteCurricularId = componenteId.Value; retorno.Adicionar(objetivoComponente); } if (objetivoComponente != null && objetivoAprendizagemDto != null) { objetivoComponente.ObjetivosAprendizagem.Add(objetivoAprendizagemDto); } return(retorno); }, param : new { aulaId }); return(lookup.Values.FirstOrDefault()); }
private PlanoAulaRetornoDto MapearParaDto(PlanoAulaObjetivosAprendizagemDto plano) => plano == null ? null : new PlanoAulaRetornoDto() { Id = plano.Id, Descricao = plano.Descricao, DesenvolvimentoAula = plano.DesenvolvimentoAula, RecuperacaoAula = plano.RecuperacaoAula, LicaoCasa = plano.LicaoCasa, AulaId = plano.AulaId, QtdAulas = plano.Quantidade, Migrado = plano.Migrado, CriadoEm = plano.CriadoEm, CriadoPor = plano.CriadoPor, CriadoRf = plano.CriadoRf, AlteradoEm = plano.AlteradoEm, AlteradoPor = plano.AlteradoPor, AlteradoRf = plano.AlteradoRf, ObjetivosAprendizagemComponente = plano.ObjetivosAprendizagemComponente };