コード例 #1
0
        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());
        }
コード例 #2
0
        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
        };