Exemple #1
0
        public Pergunta GravarPergunta(PerguntaDTO perguntaDTO, string UsuarioID)
        {
            try
            {
                using (IRepository <Pergunta> repo = factory.Get().GetRepository <Pergunta>())
                {
                    Pergunta pergunta;
                    if (perguntaDTO.PerguntaID > 0)
                    {
                        pergunta = repo.GetQuery().Single(c => c.PerguntaID == perguntaDTO.PerguntaID).AtribuirPergunta(perguntaDTO);
                    }
                    else
                    {
                        pergunta = repo.Insert(CriarPergunta(perguntaDTO));
                    }

                    pergunta.ControleAtualizacao = ControleUsuario.Criar(UsuarioID);

                    return(pergunta);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #2
0
        public override void AtribuirPergunta(PerguntaDTO perguntaDTO)
        {
            base.AtribuirPergunta(perguntaDTO);

            foreach (var item in Opcoes.ToList())
            {
                //update
                if (perguntaDTO.Opcoes.ContainsKey(item.OpcaoID))
                {
                    var descricao = perguntaDTO.Opcoes.Find(item.OpcaoID).Descricao;
                    item.Descricao           = descricao;
                    item.ControleAtualizacao = ControleUsuario.Criar(perguntaDTO.UsuarioID);
                }
                //delete
                else
                {
                    Opcoes.Remove(item);
                }
            }

            var novasOpcoes = perguntaDTO.Opcoes.Where(d => Opcoes.Any(c => c.OpcaoID == d.OpcaoID) == false).ToList();

            foreach (var item in novasOpcoes)
            {
                //insert
                Opcoes.Add(new Opcao
                {
                    Descricao           = item.Descricao,
                    OpcaoID             = item.OpcaoID,
                    PerguntaComOpcoes   = this,
                    PerguntaID          = this.PerguntaID,
                    ControleAtualizacao = ControleUsuario.Criar(perguntaDTO.UsuarioID)
                });
            }
        }
Exemple #3
0
        public override void AtribuirResposta(RespostaDTO resposta)
        {
            base.AtribuirResposta(resposta);

            if (resposta.RespostaGrade != null)
            {
                foreach (var item in resposta.RespostaGrade)
                {
                    var itemRespondido = Respostas.SingleOrDefault(d => d.LinhaPerguntaGradeID == item.LinhaPerguntaGradeID);
                    if (itemRespondido == null)
                    {
                        itemRespondido = new RespostaLinhaPerguntaGrade {
                            LinhaPerguntaGradeID = item.LinhaPerguntaGradeID,
                            OpcaoRespondidaID    = item.OpcaoRespondidaID
                        };
                        Respostas.Add(itemRespondido);
                    }
                    else
                    {
                        itemRespondido.OpcaoRespondidaID    = item.OpcaoRespondidaID;
                        itemRespondido.LinhaPerguntaGradeID = item.LinhaPerguntaGradeID;
                    }
                }
            }

            ControleAtualizacao = ControleUsuario.Criar(resposta.UsuarioID);
        }
Exemple #4
0
        public RespostaModeloDeFormulario GravarRespostaModeloFormulario(RespostaModeloFormularioDTO respostaModeloDTO, string UsuarioID)
        {
            using (var repo = factory.Get().GetRepository <Resposta>())
                using (var repoRespostaModelo = factory.Get().GetRepository <RespostaModeloDeFormulario>())
                    using (var repoPergunta = factory.Get().GetRepository <Pergunta>())
                    {
                        var respostaModeloFormulario = BuscarRespostaModeloDeFormulario().SingleOrDefault(c => c.RespostaModeloFormularioID == respostaModeloDTO.RespostaModeloFormularioID);

                        if (respostaModeloFormulario == null)
                        {
                            respostaModeloFormulario = repoRespostaModelo.Insert(new RespostaModeloDeFormulario());
                        }

                        respostaModeloFormulario.ModeloDeFormularioID = respostaModeloDTO.ModeloFormulario.ModeloFormularioID;

                        respostaModeloFormulario.ControleAtualizacao = ControleUsuario.Criar(UsuarioID);

                        foreach (var respostaDTO in respostaModeloDTO.Respostas.OrderBy(c => c.PerguntaID).ToList())
                        {
                            //RespostaTexto
                            var      pergunta = respostaModeloDTO.ModeloFormulario.Perguntas.Single(c => c.PerguntaID == respostaDTO.PerguntaID);
                            Resposta resposta = BuscarResposta().SingleOrDefault(c => c.RespostaID == respostaDTO.RespostaID);
                            if (resposta == null)
                            {
                                resposta = repo.Insert(CriarResposta(respostaDTO, pergunta.TipoPergunta));
                            }
                            else
                            {
                                resposta.AtribuirResposta(respostaDTO);
                            }

                            resposta.Pergunta = repoPergunta.GetQuery().Single(d => d.PerguntaID == resposta.PerguntaID);
                            resposta.RespostaModeloDeFormulario = respostaModeloFormulario;
                            resposta.ControleAtualizacao        = ControleUsuario.Criar(UsuarioID);

                            respostaModeloFormulario.Respostas.Add(resposta);
                        }

                        foreach (var resposta in respostaModeloFormulario.Respostas)
                        {
                            bool validarResposta = true;

                            if (resposta.Pergunta.PerguntaCondicionalID.HasValue)
                            {
                                var respostaOrigem = respostaModeloFormulario.Respostas.Single(d => d.PerguntaID == resposta.Pergunta.PerguntaCondicional.PerguntaID);

                                validarResposta = resposta.Pergunta.PerguntaCondicional.ValidarCondicional(respostaOrigem);
                            }

                            if (validarResposta && resposta.Validar() == false)
                            {
                                throw new ApplicationException($"Verifique a resposta da pergunta {resposta.Pergunta.PerguntaID} {resposta.Pergunta.Titulo}");
                            }
                        }

                        return(respostaModeloFormulario);
                    }
        }
Exemple #5
0
        public override void AtribuirResposta(RespostaDTO resposta)
        {
            base.AtribuirResposta(resposta);

            OpcoesEscolhida.Clear();
            OpcoesEscolhida = resposta.Opcoes.Select(c => new OpcaoRespondida
            {
                OpcaoID             = c,
                RespostaID          = resposta.RespostaID,
                ControleAtualizacao = ControleUsuario.Criar(resposta.UsuarioID)
            }).ToList();
        }
Exemple #6
0
        public PerguntaCondicional GravarPerguntaCondicional(PerguntaCondicionalDTO condicional, Pergunta pergunta, string UsuarioID)
        {
            using (IRepository <PerguntaCondicional> repo = factory.Get().GetRepository <PerguntaCondicional>())
            {
                PerguntaCondicional perguntaCondicional;
                if (condicional.PerguntaCondicionalID > 0)
                {
                    perguntaCondicional = repo.GetQuery().SingleOrDefault(c => c.PerguntaID == condicional.PerguntaCondicionalID).AtribuirCondicional(condicional, pergunta);
                }
                else
                {
                    perguntaCondicional = repo.Insert(CriarPerguntaCondicional(condicional, pergunta));
                }

                perguntaCondicional.ControleAtualizacao = ControleUsuario.Criar(UsuarioID);

                return(perguntaCondicional);
            }
        }
Exemple #7
0
        private void GravarLeiautePerguntaItem(LeiautePerguntaItem leiautePerguntaItem, string UsuarioID)
        {
            LeiautePerguntaItem result = BuscarLeiautePerguntaItem().SingleOrDefault(d => d.LeiautePerguntaItemID == leiautePerguntaItem.LeiautePerguntaID);

            if (result == null)
            {
                using (IRepository <LeiautePerguntaItem> repo = factory.Get().GetRepository <LeiautePerguntaItem>())
                {
                    result = repo.Insert(leiautePerguntaItem);
                }
            }
            else
            {
                result.LeiautePerguntaID = leiautePerguntaItem.LeiautePerguntaID;
                result.Responsivo        = leiautePerguntaItem.Responsivo;
                result.Tamanho           = leiautePerguntaItem.Tamanho;
            }

            result.ControleAtualizacao = ControleUsuario.Criar(UsuarioID);
        }
Exemple #8
0
        private void GravarLeiautePergunta(LeiautePergunta leiautePergunta, string UsuarioID)
        {
            LeiautePergunta result = BuscarLeiautePergunta().SingleOrDefault(d => d.LeiautePerguntaID == leiautePergunta.LeiautePerguntaID);

            if (result == null)
            {
                using (IRepository <LeiautePergunta> repo = factory.Get().GetRepository <LeiautePergunta>())
                {
                    result = repo.Insert(leiautePergunta);
                }
            }
            else
            {
                result.PerguntaID = leiautePergunta.LeiautePerguntaID;
            }

            result.ControleAtualizacao = ControleUsuario.Criar(UsuarioID);

            foreach (LeiautePerguntaItem item in leiautePergunta.LeiauteItem.ToList())
            {
                GravarLeiautePerguntaItem(item, UsuarioID);
            }
        }
Exemple #9
0
        public ModeloDeFormulario GravarModeloFormulario(ModeloFormularioDTO modeloDTO, string UsuarioID)
        {
            ModeloDeFormulario modelo;

            using (IRepository <ModeloDeFormulario> repo = factory.Get().GetRepository <ModeloDeFormulario>())
            {
                if (modeloDTO.ModeloFormularioID > 0)
                {
                    modelo = BuscarModeloDeFormulario().Single(c => c.ModeloFormularioID == modeloDTO.ModeloFormularioID);
                }
                else
                {
                    modelo = repo.Insert(CreateInstance <ModeloDeFormulario>());
                }

                modelo.Descricao = modeloDTO.Descricao;
                modelo.Html      = modeloDTO.Html;

                modelo.ControleAtualizacao = ControleUsuario.Criar(UsuarioID);

                modeloDTO.Perguntas.AtribuirUsuarioID(UsuarioID);

                //Perguntas novas
                foreach (PerguntaDTO perguntaDTO in modeloDTO.Perguntas.Where(c => c.PerguntaID <= 0 || !modelo.Perguntas.Any(d => d.PerguntaID == c.PerguntaID)))
                {
                    Pergunta pergunta = GravarPergunta(perguntaDTO, UsuarioID);
                    pergunta.ModeloDeFormulario = modelo;

                    modelo.Perguntas.Add(pergunta);

                    if (perguntaDTO.PerguntaCondicional != null)
                    {
                        Pergunta            perguntaOrigem = modelo.Perguntas.Single(c => c.PerguntaID == perguntaDTO.PerguntaCondicional.PerguntaID);
                        PerguntaCondicional pCondicional   = GravarPerguntaCondicional(perguntaDTO.PerguntaCondicional, perguntaOrigem, UsuarioID);
                        pergunta.PerguntaCondicional = pCondicional;
                    }

                    foreach (LeiautePerguntaDTO leiautePerguntaDTO in perguntaDTO.LeiautesPergunta.ToList())
                    {
                        LeiautePergunta leiautePergunta = CriarLeiautePergunta(leiautePerguntaDTO);
                        //grava o leiaute vinculado à pergunta
                        GravarLeiautePergunta(leiautePergunta, UsuarioID);
                    }

                    if (perguntaDTO.LeiautesPergunta.Any() == false)
                    {
                        GravarLeiautePergunta(LeiautePergunta.LeiautePadrao(pergunta), UsuarioID);
                    }
                }

                //Perguntas atualizadas
                foreach (Pergunta pergunta in modelo.Perguntas.ToList())
                {
                    pergunta.ModeloDeFormulario = modelo;
                    //tracking changes
                    PerguntaDTO perguntaDTO = modeloDTO.Perguntas.SingleOrDefault(d => d.PerguntaID == pergunta.PerguntaID);
                    if (perguntaDTO.Deleted)
                    {
                        List <Pergunta> perguntasCondicionais = modelo.Perguntas.Where(c => c.PerguntaCondicionalID == perguntaDTO.PerguntaID).ToList();

                        foreach (Pergunta pCondicional in perguntasCondicionais)
                        {
                            //remove o vínculo, operações e valor de ativação
                            pCondicional.RemoverCondicional();
                        }

                        foreach (LeiautePergunta leiautePergunta in pergunta.LeiautePerguntas.ToList())
                        {
                            //remove o leiaute vinculado à pergunta
                            ExcluirLeiautePergunta(leiautePergunta.LeiautePerguntaID);
                        }

                        //Remove a pergunta do modelo (Caso não tenha nenhuma resposta)
                        ExcluirPergunta(perguntaDTO.PerguntaID);
                    }
                    else
                    {
                        //Atualização
                        pergunta.AtribuirPergunta(perguntaDTO);
                        //Pergunta condicinoal removida
                        if (pergunta.PerguntaCondicionalID.HasValue && perguntaDTO.PerguntaCondicionalID.HasValue == false)
                        {
                            pergunta.RemoverCondicional();
                            ExcluirPerguntaCondicional(pergunta.PerguntaCondicionalID.Value);
                        }
                        else if (perguntaDTO.PerguntaCondicionalID.HasValue)
                        {
                            PerguntaCondicional condicional = GravarPerguntaCondicional(perguntaDTO.PerguntaCondicional, pergunta, UsuarioID);
                        }

                        foreach (LeiautePergunta leiautePergunta in pergunta.LeiautePerguntas.ToList())
                        {
                            //grava o leiaute vinculado à pergunta
                            GravarLeiautePergunta(leiautePergunta, UsuarioID);
                        }
                    }
                }
            }
            return(modelo);
        }
Exemple #10
0
        public static void CreateData(IFormularioService svc,
                                      IDatabaseFactory factory,
                                      IUnitOfWOrkGeneric <IDatabaseFactory> unit)
        {
            var ctx = factory.Get();
            //long Identity = 0;

            var repoPergunta            = ctx.GetRepository <Pergunta>();
            var repoPerguntaCondicional = ctx.GetRepository <PerguntaCondicional>();
            var repoOpcao = ctx.GetRepository <Opcao>();
            var repoModeloDeFormulario         = ctx.GetRepository <ModeloDeFormulario>();
            var repoRespostaModeloDeFormulario = ctx.GetRepository <RespostaModeloDeFormulario>();
            var repoOpcaoAtivacao       = ctx.GetRepository <OpcaoAtivacao>();
            var repoLinhaPerguntaGrade  = ctx.GetRepository <LinhaPerguntaGrade>();
            var repoResposta            = ctx.GetRepository <Resposta>();
            var repoLeiautePergunta     = ctx.GetRepository <LeiautePergunta>();
            var repoLeiautePerguntaItem = ctx.GetRepository <LeiautePerguntaItem>();

            var pMultipla = new PerguntaMultiplaEscolha
            {
                Obrigatorio         = false,
                PerguntaCondicional = null,
                //TipoPergunta = Enumeradores.eMultiplaEscolha.Checkbox,
                TipoEntradaID       = (byte)eTipoEntrada.MultiplaEscolha_CaixaDeSelecao,
                PerguntaID          = 1,
                Titulo              = "Linguagem",
                Descricao           = "Ling",
                ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                Opcoes              = new List <Opcao>
                {
                    new Opcao
                    {
                        OpcaoID             = 1,
                        Descricao           = "C#",
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                    new Opcao
                    {
                        OpcaoID             = 2,
                        Descricao           = "JAVA",
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                    new Opcao
                    {
                        OpcaoID             = 3,
                        Descricao           = "JavaScript",
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                    new Opcao
                    {
                        OpcaoID             = 4,
                        Descricao           = "Python",
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                }
            };

            pMultipla.Opcoes.ToList().ForEach(c => repoOpcao.Insert(c));

            repoPergunta.Insert(pMultipla);

            var pTexto = new PerguntaTexto
            {
                PerguntaID          = 2,
                Titulo              = "Nome",
                TipoEntradaID       = (byte)eTipoEntrada.Texto_CaixaDeTexto,
                Descricao           = "Desc",
                PatternRegex        = null,
                PerguntaCondicional = null,
                TamanhoMaximo       = 50,
                TipoValidadorID     = null,
                Obrigatorio         = true,
                ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
            };

            repoPergunta.Insert(pTexto);

            var pUnica = new PerguntaEscolhaUnica
            {
                PerguntaID          = 3,
                Descricao           = "Desc Sexo",
                Titulo              = "Sexo",
                PerguntaCondicional = null,
                ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                Opcoes              = new List <Opcao>
                {
                    new Opcao
                    {
                        OpcaoID             = 5,
                        Descricao           = "M",
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                    new Opcao
                    {
                        OpcaoID             = 6,
                        Descricao           = "F",
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    }
                },
                //TipoPergunta = Enumeradores.eEscolhaUnica.Radio,
                TipoEntradaID = (byte)eTipoEntrada.EscolhaUnica_Radio
            };

            pUnica.Opcoes.ToList().ForEach(c => repoOpcao.Insert(c));

            repoPergunta.Insert(pUnica);

            var pUnicaCondicional = new PerguntaEscolhaUnica
            {
                PerguntaID = 4,
                Titulo     = "Nível de Conhecimento C#",
                Descricao  = "Nível",
                //TipoPergunta = Enumeradores.eEscolhaUnica.Star,
                TipoEntradaID       = (byte)eTipoEntrada.EscolhaUnica_Star,
                ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                PerguntaCondicional = new PerguntaCondicionalMultipla
                {
                    PerguntaID          = 1,
                    ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    OpcoesAtivacao      = pMultipla.Opcoes.Where(c => c.OpcaoID == 1)
                                          .Select(c => new OpcaoAtivacao
                    {
                        OpcaoID             = c.OpcaoID,
                        Opcao               = c,
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                        //PerguntaCondicionalID = pCondicional.PerguntaCondicionalID,
                        //PerguntaCondicional = this
                    })
                                          .ToList(),
                    Operacao = eOperacaoCondicional.MultiplaOpcoes_Contem,
                    Pergunta = pMultipla,
                },
                Opcoes = new List <Opcao>
                {
                    new Opcao {
                        OpcaoID = 11, Descricao = "Básico", ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                    new Opcao {
                        OpcaoID = 12, Descricao = "Médio", ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                    new Opcao {
                        OpcaoID = 13, Descricao = "Avançado", ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                }
            };

            (pUnicaCondicional.PerguntaCondicional as PerguntaCondicionalMultipla).OpcoesAtivacao.ToList().ForEach(c => repoOpcaoAtivacao.Insert(c));
            repoPerguntaCondicional.Insert(pUnicaCondicional.PerguntaCondicional);
            pUnicaCondicional.Opcoes.ToList().ForEach(c => repoOpcao.Insert(c));
            repoPergunta.Insert(pUnicaCondicional);

            var pIdade = new PerguntaNumero
            {
                PerguntaID          = 5,
                CasasDecimais       = 0,
                Descricao           = "I",
                Titulo              = "Idade",
                Obrigatorio         = true,
                PerguntaCondicional = null,
                Prefixo             = "P",
                Sufixo              = "S",
                TipoEntradaID       = (byte)eTipoEntrada.Numero_CaixaDeTexto,
                TipoValidadorID     = eTipoValidador.Numero_MaiorIgualZero
            };

            repoPergunta.Insert(pIdade);

            var pCondicionalIdade = new PerguntaTexto
            {
                PerguntaID          = 6,
                Descricao           = "Cond",
                Titulo              = "Teste Condicional",
                Obrigatorio         = true,
                PatternRegex        = null,
                TamanhoMaximo       = 50,
                TipoEntradaID       = (byte)eTipoEntrada.Texto_CaixaDeTexto,
                TipoValidadorID     = null,
                ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                PerguntaCondicional = new PerguntaCondicionalNumero
                {
                    PerguntaCondicionalID = 10,
                    Operacao            = eOperacaoCondicional.Numero_Igual,
                    Pergunta            = pIdade,
                    PerguntaID          = pIdade.PerguntaID,
                    ValorAtivacao       = 20,
                    ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                },
                PerguntaCondicionalID = 10,
            };

            repoPerguntaCondicional.Insert(pCondicionalIdade.PerguntaCondicional);
            repoPergunta.Insert(pCondicionalIdade);

            var opcoesGrade = new HashSet <Opcao>
            {
                new Opcao {
                    Descricao = "Básico", OpcaoID = 21, ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                },
                new Opcao {
                    Descricao = "Intermediário", OpcaoID = 22, ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                },
                new Opcao {
                    Descricao = "Avançado", OpcaoID = 23, ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                }
            };

            opcoesGrade.ToList().ForEach(c => repoOpcao.Insert(c));

            var pGrade = new PerguntaGradeDeOpcoes
            {
                PerguntaID          = 7,
                Descricao           = "AV",
                Obrigatorio         = false,
                Titulo              = "Avaliacao",
                PerguntaCondicional = null,
                Opcoes              = opcoesGrade,
                TipoEntradaID       = (byte)eTipoEntrada.Grade_Estrela,
                ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                TipoEntrada         = new TipoEntrada {
                    Descricao = "Estrela", TipoEntradaID = (byte)eTipoEntrada.Grade_Estrela, TipoPerguntaID = (byte)eTipoPergunta.Grade
                },
                Linhas = new HashSet <LinhaPerguntaGrade>
                {
                    new LinhaPerguntaGrade
                    {
                        LinhaPerguntaGradeID = 1,
                        //PerguntaID = ++Identity,
                        //Descricao = null,
                        Titulo = "C#",
                        //Obrigatorio = false,
                        //Opcoes=opcoesGrade
                    },
                    new LinhaPerguntaGrade
                    {
                        LinhaPerguntaGradeID = 2,
                        //Descricao = null,
                        Titulo = "Java",
                        //Obrigatorio = false,
                        //Opcoes=opcoesGrade
                    }
                }
            };

            pGrade.Linhas.ToList().ForEach(c => repoLinhaPerguntaGrade.Insert(c));
            repoPergunta.Insert(pGrade);

            ModeloDeFormulario modelo = new ModeloDeFormulario
            {
                ModeloFormularioID = 1,
                Descricao          = "Modelo",
                Html = "<b>Modelo</b>",
                ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                Perguntas           = new List <Pergunta>
                {
                    pTexto,
                    pUnica,
                    pMultipla,
                    pUnicaCondicional,
                    pIdade,
                    pCondicionalIdade,
                    pGrade
                }
            };

            repoModeloDeFormulario.Insert(modelo);

            modelo.AtribuirLeiautePerguntasPadrao();

            modelo.Perguntas.SelectMany(c => c.LeiautePerguntas).ToList().ForEach(c =>
            {
                repoLeiautePergunta.Insert(c);

                c.LeiauteItem.ToList().ForEach(d =>
                {
                    repoLeiautePerguntaItem.Insert(d);
                });
            });

            RespostaModeloDeFormulario respostaModelo = new RespostaModeloDeFormulario
            {
                ModeloDeFormulario         = modelo,
                ModeloDeFormularioID       = 1,
                RespostaModeloFormularioID = 1,
                ControleAtualizacao        = ControleUsuario.Criar("ADMIN"),
                Respostas = new HashSet <Resposta>
                {
                    new RespostaTexto
                    {
                        Pergunta            = pTexto,
                        PerguntaID          = pTexto.PerguntaID,
                        RespostaID          = 1,
                        Valor               = "Hernandes",
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                    new RespostaNumero
                    {
                        Pergunta            = pIdade,
                        PerguntaID          = pIdade.PerguntaID,
                        RespostaID          = 6,
                        Valor               = 20,
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                    new RespostaUnica
                    {
                        RespostaID          = 2,
                        Pergunta            = pUnica,
                        PerguntaID          = pUnica.PerguntaID,
                        OpcaoEscolhida      = pUnica.Opcoes.First(),
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                    new RespostaMultipla
                    {
                        RespostaID      = 3,
                        Pergunta        = pMultipla,
                        PerguntaID      = pMultipla.PerguntaID,
                        OpcoesEscolhida = pMultipla.Opcoes.Skip(1).Take(2).Select(c => new OpcaoRespondida {
                            OpcaoID = c.OpcaoID
                        }).ToList(),
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                    //new RespostaUnica
                    //{
                    //     RespostaID=3,
                    //     Pergunta = pUnicaCondicional,
                    //     PerguntaID=pUnicaCondicional.PerguntaID,
                    //       //OpcaoEscolhida = pUnicaCondicional.Opcoes.First(),
                    //       // OpcaoEscolhidaID=pUnicaCondicional.Opcoes.First().OpcaoID,
                    //},
                    new RespostaTexto
                    {
                        Pergunta            = pCondicionalIdade,
                        PerguntaID          = pCondicionalIdade.PerguntaID,
                        Valor               = "A",
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                    },
                    new RespostaGrade
                    {
                        RespostaID          = 7,
                        Pergunta            = pGrade,
                        PerguntaID          = pGrade.PerguntaID,
                        ControleAtualizacao = ControleUsuario.Criar("ADMIN"),
                        Respostas           = new List <RespostaLinhaPerguntaGrade>
                        {
                            new RespostaLinhaPerguntaGrade {
                                RespostaGradeID = 1, LinhaPerguntaGradeID = 1, OpcaoRespondidaID = 21
                            },
                            new RespostaLinhaPerguntaGrade {
                                RespostaGradeID = 1, LinhaPerguntaGradeID = 2, OpcaoRespondidaID = 22
                            }
                        }
                    }
                }
            };

            respostaModelo.Validar();

            respostaModelo.Respostas.ToList().ForEach(c => repoResposta.Insert(c));
            repoRespostaModeloDeFormulario.Insert(respostaModelo);

            unit.Commit("ADMIN");
        }