Beispiel #1
0
        public void AtribuirPerguntaTest()
        {
            PerguntaGradeDeOpcoes p = (PerguntaGradeDeOpcoes) new PerguntaGradeDeOpcoes().AtribuirPergunta(new DTO.PerguntaDTO
            {
                CasasDecimais         = 2,
                Deleted               = false,
                Descricao             = "Desc",
                Obrigatorio           = true,
                PatternRegex          = @"\w*",
                PerguntaID            = 1,
                PerguntaCondicionalID = null,
                PerguntaCondicional   = null,
                Prefixo               = "R$",
                Sufixo             = "%",
                TamanhoMaximo      = 8,
                TipoEntrada        = (byte)eTipoEntrada.Numero_ComBotoes,
                TipoPergunta       = eTipoPergunta.Numero,
                TamanhoMaximoBytes = 100,
                Titulo             = "Titulo",
                UsuarioID          = "ADMIN",
                ValidadorID        = (byte)eTipoValidador.Texto_Regex,
                Opcoes             = new List <OpcaoDTO>
                {
                    new OpcaoDTO {
                        OpcaoID = 1, Descricao = "M"
                    },
                    new OpcaoDTO {
                        OpcaoID = 2, Descricao = "F"
                    }
                },
                LinhasGrade = new List <DTO.LinhasGradeDTO> {
                    new DTO.LinhasGradeDTO
                    {
                        LinhaID   = 1,
                        Descricao = "Nível"
                    },
                    new DTO.LinhasGradeDTO {
                        LinhaID   = 2,
                        Descricao = "SubNível"
                    }
                }
            });

            Assert.AreEqual("Desc", p.Descricao);
            Assert.AreEqual("Titulo", p.Titulo);
            Assert.AreEqual(DateTime.Now.Date, p.ControleAtualizacao.Data.Date);
            Assert.AreEqual("ADMIN", p.ControleAtualizacao.UsuarioID);
            Assert.AreEqual(1, p.Opcoes.First().OpcaoID);
            Assert.AreEqual(2, p.Opcoes.Skip(1).First().OpcaoID);
            Assert.AreEqual(2, p.Opcoes.Count);

            Assert.AreEqual(1, p.Linhas.First().LinhaPerguntaGradeID);
            Assert.AreEqual(2, p.Linhas.Skip(1).First().LinhaPerguntaGradeID);
            Assert.AreEqual(2, p.Linhas.Count);

            Assert.AreEqual((byte)eTipoEntrada.Numero_ComBotoes, p.TipoEntradaID);
        }
Beispiel #2
0
        public Pergunta CriarPergunta(PerguntaDTO perguntaDTO)
        {
            Pergunta pergunta = null;

            switch (perguntaDTO.TipoPergunta)
            {
            case eTipoPergunta.Texto:
                pergunta = new PerguntaTexto();
                break;

            case eTipoPergunta.Anexo:
                pergunta = new PerguntaAnexo();
                break;

            case eTipoPergunta.EscolhaUnica:
                pergunta = new PerguntaEscolhaUnica();
                break;

            case eTipoPergunta.Numero:
                pergunta = new PerguntaNumero();
                break;

            case eTipoPergunta.Data:
                pergunta = new PerguntaData();
                break;

            case eTipoPergunta.Grade:
                pergunta = new PerguntaGradeDeOpcoes();
                break;

            case eTipoPergunta.MultiplaEscolha:
                pergunta = new PerguntaMultiplaEscolha();
                break;

            default:
                throw new NotImplementedException();
            }

            pergunta.AtribuirPergunta(perguntaDTO);

            foreach (var item in perguntaDTO.LeiautePergunta)
            {
                pergunta.LeiautePerguntas.Add(CriarLeiautePergunta(item));
            }

            return(pergunta);
        }
Beispiel #3
0
        private static void TestarModeloDeDominio()
        {
            var multipla = new PerguntaMultiplaEscolha
            {
                Obrigatorio         = false,
                PerguntaCondicional = null,
                //TipoPergunta = Enumeradores.eMultiplaEscolha.Checkbox,
                TipoEntradaID = (byte)eTipoEntrada.MultiplaEscolha_CaixaDeSelecao,
                PerguntaID    = ++Identity,
                Titulo        = "Linguagem",
                Descricao     = null,
                Opcoes        = new List <Opcao>
                {
                    new Opcao
                    {
                        OpcaoID   = 1,
                        Descricao = "C#"
                    },
                    new Opcao
                    {
                        OpcaoID   = 2,
                        Descricao = "JAVA"
                    },
                    new Opcao
                    {
                        OpcaoID   = 3,
                        Descricao = "JavaScript"
                    },
                    new Opcao
                    {
                        OpcaoID   = 4,
                        Descricao = "Python"
                    },
                }
            };

            var texto = new PerguntaTexto
            {
                PerguntaID          = ++Identity,
                Titulo              = "Nome",
                TipoEntradaID       = (byte)eTipoEntrada.Texto_CaixaDeTexto,
                Descricao           = null,
                PatternRegex        = null,
                PerguntaCondicional = null,
                TamanhoMaximo       = 50,
                TipoValidadorID     = null
            };

            var unica = new PerguntaEscolhaUnica
            {
                PerguntaID          = ++Identity,
                Descricao           = null,
                Titulo              = "Sexo",
                PerguntaCondicional = null,
                Opcoes              = new List <Opcao>
                {
                    new Opcao
                    {
                        Descricao = "M",
                    },
                    new Opcao
                    {
                        Descricao = "F",
                    }
                },
                //TipoPergunta = Enumeradores.eEscolhaUnica.Radio,
                TipoEntradaID = (byte)eTipoEntrada.EscolhaUnica_Radio
            };

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

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

            var pCondicionalIdade = new PerguntaTexto
            {
                PerguntaID          = ++Identity,
                Descricao           = null,
                Titulo              = "Teste Condicional",
                Obrigatorio         = true,
                PatternRegex        = null,
                TamanhoMaximo       = 50,
                TipoEntradaID       = (byte)eTipoEntrada.Texto_CaixaDeTexto,
                TipoValidadorID     = null,
                PerguntaCondicional = new PerguntaCondicionalNumero
                {
                    Operacao      = eOperacaoCondicional.Numero_Igual,
                    Pergunta      = pIdade,
                    PerguntaID    = 2,
                    ValorAtivacao = 20
                }
            };

            var opcoesGrade = new HashSet <Opcao>
            {
                new Opcao {
                    Descricao = "Básico", OpcaoID = 1
                },
                new Opcao {
                    Descricao = "Intermediário", OpcaoID = 2
                },
                new Opcao {
                    Descricao = "Avançado", OpcaoID = 3
                }
            };

            var grade = new PerguntaGradeDeOpcoes
            {
                PerguntaID          = ++Identity,
                Descricao           = null,
                Obrigatorio         = false,
                Titulo              = "Avaliacao",
                PerguntaCondicional = null,
                Opcoes              = opcoesGrade,
                Linhas              = new HashSet <LinhaPerguntaGrade>
                {
                    new LinhaPerguntaGrade
                    {
                        //PerguntaID = ++Identity,
                        //Descricao = null,
                        Titulo = "C#",
                        //Obrigatorio = false,
                        //Opcoes=opcoesGrade
                    },
                    new LinhaPerguntaGrade
                    {
                        //Descricao = null,
                        Titulo = "Java",
                        //Obrigatorio = false,
                        //Opcoes=opcoesGrade
                    }
                }
            };

            ModeloDeFormulario modelo = new ModeloDeFormulario
            {
                Perguntas = new List <Pergunta>
                {
                    texto,
                    unica,
                    multipla,
                    unicaCondicional,
                    pIdade,
                    pCondicionalIdade
                }
            };

            modelo.CriarLeiautePerguntasPadrao();

            RespostaModeloDeFormulario resposta = new RespostaModeloDeFormulario
            {
                ModeloDeFormulario         = modelo,
                RespostaModeloFormularioID = 1,
                Respostas = new HashSet <Resposta>
                {
                    new RespostaTexto
                    {
                        Pergunta   = texto,
                        RespostaID = 1,
                        Valor      = "Hernandes"
                    },
                    new RespostaNumero
                    {
                        Pergunta   = pIdade,
                        RespostaID = 6,
                        Valor      = 20,
                    },
                    new RespostaUnica
                    {
                        RespostaID     = 2,
                        Pergunta       = unica,
                        OpcaoEscolhida = unica.Opcoes.First()
                    },
                    new RespostaMultipla
                    {
                        RespostaID      = 3,
                        Pergunta        = multipla,
                        OpcoesEscolhida = multipla.Opcoes.Skip(1).Take(2).Select(c => new OpcaoRespondida {
                            OpcaoID = c.OpcaoID
                        }).ToList(),
                    },
                    //new RespostaUnica
                    //{
                    //     RespostaID=3,
                    //      Pergunta = unicaCondicional,
                    //       OpcaoEscolhida = unicaCondicional.Opcoes.First(),
                    //        OpcaoEscolhidaID=unicaCondicional.Opcoes.First().OpcaoID,
                    //},
                    new RespostaTexto
                    {
                        Pergunta = pCondicionalIdade,
                        Valor    = "A",
                    }
                }
            };

            resposta.Validar();
        }
Beispiel #4
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;
            }
        }
Beispiel #5
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");
        }