예제 #1
0
        protected PerguntaCondicionalDTO CriarPerguntaCondicionalDTO(PerguntaCondicional pCondicional)
        {
            if (pCondicional == null)
            {
                return(null);
            }

            eTipoPergunta tipoPerguntaCondicional = (
                pCondicional is PerguntaCondicionalData ? eTipoPergunta.Texto :
                pCondicional is PerguntaCondicionalAnexo ? eTipoPergunta.Anexo :
                pCondicional is PerguntaCondicionalUnica ? eTipoPergunta.EscolhaUnica :
                pCondicional is PerguntaCondicionalMultipla ? eTipoPergunta.MultiplaEscolha :
                pCondicional is PerguntaCondicionalNumero ? eTipoPergunta.Numero :
                pCondicional is PerguntaCondicionalData ? eTipoPergunta.Data : new eTipoPergunta?()).Value;

            PerguntaCondicionalDTO perguntaCondicionalDTO = new PerguntaCondicionalDTO();

            switch (tipoPerguntaCondicional)
            {
            case eTipoPergunta.Texto:
                perguntaCondicionalDTO.ValorAtivacao       = (pCondicional as PerguntaCondicionalTexto).ValorAtivacao;
                perguntaCondicionalDTO.OperacaoCondicional = (short)(pCondicional as PerguntaCondicionalTexto).Operacao;
                break;

            case eTipoPergunta.Numero:
                perguntaCondicionalDTO.ValorAtivacao       = (pCondicional as PerguntaCondicionalNumero).ValorAtivacao;
                perguntaCondicionalDTO.OperacaoCondicional = (short)(pCondicional as PerguntaCondicionalNumero).Operacao;
                break;

            case eTipoPergunta.Data:
                perguntaCondicionalDTO.ValorAtivacao       = (pCondicional as PerguntaCondicionalData).ValorAtivacao;
                perguntaCondicionalDTO.OperacaoCondicional = (short)(pCondicional as PerguntaCondicionalData).Operacao;
                break;

            case eTipoPergunta.Anexo:
                perguntaCondicionalDTO.ValorAtivacao       = (pCondicional as PerguntaCondicionalAnexo).ValorAtivacao;
                perguntaCondicionalDTO.OperacaoCondicional = (short)(pCondicional as PerguntaCondicionalAnexo).Operacao;
                break;

            case eTipoPergunta.EscolhaUnica:
                perguntaCondicionalDTO.ValorAtivacao       = (pCondicional as PerguntaCondicionalUnica).OpcaoAtivacao.OpcaoID;
                perguntaCondicionalDTO.OperacaoCondicional = (short)(pCondicional as PerguntaCondicionalUnica).Operacao;
                break;

            case eTipoPergunta.MultiplaEscolha:
                perguntaCondicionalDTO.OpcoesAtivacao      = (pCondicional as PerguntaCondicionalMultipla).OpcoesAtivacao.Select(c => c.OpcaoID).ToList();
                perguntaCondicionalDTO.OperacaoCondicional = (short)(pCondicional as PerguntaCondicionalMultipla).Operacao;
                break;

            case eTipoPergunta.Grade:
                perguntaCondicionalDTO.OpcoesAtivacao      = (pCondicional as PerguntaCondicionalGrade).OpcoesAtivacao.Select(c => c.OpcaoID).ToList();
                perguntaCondicionalDTO.OperacaoCondicional = (short)(pCondicional as PerguntaCondicionalGrade).Operacao;
                perguntaCondicionalDTO.PerguntasGrade      = ((pCondicional as PerguntaCondicionalGrade).Pergunta as PerguntaGradeDeOpcoes).Opcoes.ToDictionary(c => c.OpcaoID, d => d.Descricao);
                break;
            }
            perguntaCondicionalDTO.PerguntaID   = pCondicional.PerguntaID;
            perguntaCondicionalDTO.TipoPergunta = tipoPerguntaCondicional;
            return(perguntaCondicionalDTO);
        }
예제 #2
0
        protected eTipoPergunta CreateTipoPergunta(Pergunta p)
        {
            eTipoPergunta tipoPergunta = (
                p is PerguntaTexto ? eTipoPergunta.Texto :
                p is PerguntaAnexo ? eTipoPergunta.Anexo :
                p is PerguntaEscolhaUnica ? eTipoPergunta.EscolhaUnica :
                p is PerguntaMultiplaEscolha ? eTipoPergunta.MultiplaEscolha :
                p is PerguntaNumero ? eTipoPergunta.Numero :
                p is PerguntaGradeDeOpcoes ? eTipoPergunta.Grade :
                p is PerguntaData ? eTipoPergunta.Data : new eTipoPergunta?()).Value;

            return(tipoPergunta);
        }
예제 #3
0
        protected Resposta CriarResposta(RespostaDTO respostaDTO, eTipoPergunta tipoPergunta)
        {
            Resposta resposta = null;

            switch (tipoPergunta)
            {
            case eTipoPergunta.Texto:
                resposta = CreateInstance <RespostaTexto>();
                break;

            case eTipoPergunta.Anexo:
                resposta = CreateInstance <RespostaAnexo>();
                break;

            case eTipoPergunta.EscolhaUnica:
                resposta = CreateInstance <RespostaUnica>();
                break;

            case eTipoPergunta.Numero:
                resposta = CreateInstance <RespostaNumero>();
                break;

            case eTipoPergunta.Data:
                resposta = CreateInstance <RespostaData>();
                break;

            case eTipoPergunta.Grade:
                resposta = CreateInstance <RespostaGrade>();
                break;

            case eTipoPergunta.MultiplaEscolha:
                resposta = CreateInstance <RespostaMultipla>();
                break;

            default:
                throw new NotImplementedException();
            }

            try
            {
                resposta.AtribuirResposta(respostaDTO);
            }
            catch (Exception)
            {
                throw;
            }

            return(resposta);
        }
예제 #4
0
        public Resposta CriarResposta(RespostaDTO respostaDTO, eTipoPergunta tipoPergunta)
        {
            Resposta resposta = null;

            switch (tipoPergunta)
            {
            case eTipoPergunta.Texto:
                resposta = new RespostaTexto();
                break;

            case eTipoPergunta.Anexo:
                resposta = new RespostaAnexo();
                break;

            case eTipoPergunta.EscolhaUnica:
                resposta = new RespostaUnica();
                break;

            case eTipoPergunta.Numero:
                resposta = new RespostaNumero();
                break;

            case eTipoPergunta.Data:
                resposta = new RespostaData();
                break;

            case eTipoPergunta.Grade:
                resposta = new RespostaGrade();
                break;

            case eTipoPergunta.MultiplaEscolha:
                resposta = new RespostaMultipla();
                break;

            default:
                throw new NotImplementedException();
            }

            resposta.AtribuirResposta(respostaDTO);

            return(resposta);
        }
예제 #5
0
 public TipoPergunta(eTipoPergunta tipo)
 {
     this.TipoPerguntaID = (byte)tipo;
     this.Descricao      = tipo.GetEnumDescription();
 }
예제 #6
0
        protected PerguntaDTO CriarPerguntaDTO(Perguntas.Pergunta p)
        {
            try
            {
                PerguntaCondicional pCondicional = p.PerguntaCondicional;

                eTipoPergunta tipoPergunta = CreateTipoPergunta(p);

                PerguntaCondicionalDTO perguntaCondicionalDTO = CriarPerguntaCondicionalDTO(p.PerguntaCondicional);

                PerguntaDTO pergunta = new PerguntaDTO
                {
                    Descricao             = p.Descricao,
                    TipoPergunta          = tipoPergunta,
                    Titulo                = p.Titulo,
                    PerguntaID            = p.PerguntaID,
                    PerguntaCondicionalID = p.PerguntaCondicionalID,
                    PerguntaCondicional   = perguntaCondicionalDTO,
                    Obrigatorio           = p.Obrigatorio,
                    Deleted               = false,
                    TamanhoMaximo         = null,
                    //PerguntasGrade = null,
                    //GradeOpcoes = null,
                    Opcoes           = null,
                    ValidadorID      = null,
                    PatternRegex     = null,
                    TipoEntrada      = p.TipoEntradaID,
                    LeiautesPergunta = p.LeiautePerguntas.Select(c => new LeiautePerguntaDTO
                    {
                        LeiautePerguntaID    = c.LeiautePerguntaID,
                        PerguntaID           = c.PerguntaID,
                        LeiautesPerguntaItem = c.LeiauteItem.Select(d => new LeiautePerguntaItemDTO
                        {
                            LeiautePerguntaID     = d.LeiautePerguntaID,
                            LeiautePerguntaItemID = d.LeiautePerguntaItemID,
                            TamanhoTela           = d.Responsivo,
                            Coluna = d.Tamanho,
                        }).ToList()
                    }).ToList()
                };

                switch (tipoPergunta)
                {
                case eTipoPergunta.Texto:
                    PerguntaTexto pTexto = p as PerguntaTexto;
                    pergunta.PatternRegex  = pTexto.PatternRegex;
                    pergunta.TamanhoMaximo = pTexto.TamanhoMaximo;
                    pergunta.ValidadorID   = (short?)pTexto.TipoValidadorID;
                    pergunta.TipoEntrada   = pTexto.TipoEntradaID;
                    break;

                case eTipoPergunta.EscolhaUnica:
                case eTipoPergunta.MultiplaEscolha:
                    pergunta.Opcoes = (p as Perguntas.PerguntaComOpcoes).Opcoes.Select(c => new OpcaoDTO {
                        OpcaoID = c.OpcaoID, Descricao = c.Descricao
                    }).ToList();
                    break;

                case eTipoPergunta.Grade:

                    PerguntaGradeDeOpcoes pGrade = (p as Perguntas.PerguntaGradeDeOpcoes);
                    pergunta.Opcoes = (p as Perguntas.PerguntaGradeDeOpcoes).Opcoes
                                      .Select(c => new OpcaoDTO {
                        OpcaoID = c.OpcaoID, Descricao = c.Descricao
                    }).ToList();
                    pergunta.LinhasGrade = (p as Perguntas.PerguntaGradeDeOpcoes).Linhas
                                           .Select(c => new LinhasGradeDTO {
                        LinhaID = c.LinhaPerguntaGradeID, Descricao = c.Titulo
                    }).ToList();
                    break;

                case eTipoPergunta.Anexo:
                    PerguntaAnexo pAnexo = p as PerguntaAnexo;
                    pergunta.TipoEntrada = pAnexo.TipoEntradaID;
                    break;

                case eTipoPergunta.Numero:
                    PerguntaNumero pNumero = p as PerguntaNumero;
                    pergunta.TipoEntrada   = pNumero.TipoEntradaID;
                    pergunta.CasasDecimais = pNumero.CasasDecimais;
                    pergunta.Prefixo       = pNumero.Prefixo;
                    pergunta.Sufixo        = pNumero.Sufixo;
                    break;

                case eTipoPergunta.Data:
                    PerguntaData pData = p as PerguntaData;
                    pergunta.TipoEntrada = pData.TipoEntradaID;
                    break;

                default:
                    throw new NotImplementedException();
                }

                pergunta.TipoEntrada = p.TipoEntradaID;
                pergunta.ValidadorID = (short?)p.TipoValidadorID;

                return(pergunta);
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #7
0
 public TipoPerguntaAttribute(eTipoPergunta tipo)
 {
     this.TipoPergunta = tipo;
 }