Beispiel #1
0
        public async Task <IEnumerable <PerguntasOrdemGrupoAutoralDto> > ObterPerguntasPorGrupo(GrupoSondagemEnum grupoSondagem, ComponenteCurricularSondagemEnum componenteCurricular)
        {
            StringBuilder query = new StringBuilder();

            query.Append(" select p.\"Id\" PerguntaId, p.\"Descricao\" Pergunta, o.\"Id\" OrdemId,  o.\"Descricao\" Ordem, ");
            query.Append(" g.\"Id\" GrupoId, g.\"Descricao\" Grupo ");
            query.Append(" from \"Grupo\" g ");
            query.Append(" inner join \"GrupoOrdem\" go on go.\"GrupoId\" = g.\"Id\" ");
            query.Append(" inner join \"Ordem\" o on o.\"Id\" = go.\"OrdemId\" ");
            query.Append(" inner join \"OrdemPergunta\" op on op.\"GrupoId\" = g.\"Id\"  ");
            query.Append(" inner join \"Pergunta\" p on p.\"Id\" = op.\"PerguntaId\" where 1=1 ");

            if (grupoSondagem > 0)
            {
                query.Append("and g.\"Id\" = @grupoId ");
            }

            if (componenteCurricular > 0)
            {
                query.Append("and p.\"ComponenteCurricularId\" = @componenteCurricularId ");
            }

            query.Append("order by go.\"Ordenacao\", op.\"OrdenacaoNaTela\" ");

            var parametros = new { grupoId = grupoSondagem.Name(), componenteCurricularId = componenteCurricular.Name() };

            using var conexao = new NpgsqlConnection(variaveisAmbiente.ConnectionStringSondagem);
            return(await conexao.QueryAsync <PerguntasOrdemGrupoAutoralDto>(query.ToString(), parametros));
        }
Beispiel #2
0
 public ObterPerguntasPorGrupoQuery(GrupoSondagemEnum grupoSondagem, ComponenteCurricularSondagemEnum componenteCurricular)
 {
     GrupoSondagem        = grupoSondagem;
     ComponenteCurricular = componenteCurricular;
 }