Пример #1
0
        public void LeiautePadraoTest()
        {
            LeiautePergunta leiaute = LeiautePergunta.LeiautePadrao(new PerguntaTexto());

            Assert.AreEqual(eColunas.T12, leiaute.LeiauteItem.First().Tamanho);
            Assert.AreEqual(eTamanhoTela.Mobile, leiaute.LeiauteItem.First().Responsivo);
        }
Пример #2
0
 public void CriarLeiautePerguntasPadrao()
 {
     foreach (var item in Perguntas)
     {
         item.LeiautePerguntas.Add(LeiautePergunta.LeiautePadrao(item));
     }
 }
Пример #3
0
        public void ExcluirLeiautePergunta(long leiautePerguntaID)
        {
            LeiautePergunta leiaute = BuscarLeiautePergunta().Single(c => c.LeiautePerguntaID == leiautePerguntaID);

            foreach (LeiautePerguntaItem item in leiaute.LeiauteItem.ToList())
            {
                ExcluirLeiautePerguntaItem(item.LeiautePerguntaItemID);
            }

            using (IRepository <LeiautePergunta> repo = factory.Get().GetRepository <LeiautePergunta>())
            {
                repo.Delete(leiaute);
            }
        }
Пример #4
0
        protected LeiautePergunta CriarLeiautePergunta(LeiautePerguntaDTO leiautePergunta)
        {
            LeiautePergunta result = new LeiautePergunta
            {
                LeiautePerguntaID = leiautePergunta.LeiautePerguntaID,
                PerguntaID        = leiautePergunta.PerguntaID,
                LeiauteItem       = leiautePergunta.LeiautesPerguntaItem.Select(d =>
                                                                                new LeiautePerguntaItem
                {
                    LeiautePerguntaID     = d.LeiautePerguntaID,
                    LeiautePerguntaItemID = d.LeiautePerguntaItemID,
                    Responsivo            = d.TamanhoTela,
                    Tamanho = d.Coluna,
                }).ToList()
            };

            return(result);
        }
Пример #5
0
        private LeiautePergunta CriarLeiautePergunta(LeiautePerguntaDTO leiautePergunta)
        {
            var result = new LeiautePergunta
            {
                LeiautePerguntaID = leiautePergunta.LeiautePerguntaID,
                PerguntaID        = leiautePergunta.PerguntaID,
                LeiauteItem       = leiautePergunta.LeiauteItem.Select(d =>
                                                                       new LeiautePerguntaItem
                {
                    LeiautePerguntaID     = d.LeiautePerguntaID,
                    LeiautePerguntaItemID = d.LeiautePerguntaItemID,
                    Responsivo            = d.Responsivo,
                    Tamanho = d.Tamanho,
                }).ToList()
            };

            return(result);
        }
Пример #6
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);
            }
        }
Пример #7
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);
        }