Esempio n. 1
0
        private Campo DuplicarCampo(Campo campoOriginal, Etapa etapa, BMCampo bmCampo)
        {
            var campoNovo = new Campo
            {
                OriginalID = campoOriginal.ID,

                Etapa                        = etapa,
                Nome                         = campoOriginal.Nome,
                Ordem                        = campoOriginal.Ordem,
                Tamanho                      = campoOriginal.Tamanho,
                TipoDado                     = campoOriginal.TipoDado,
                TipoCampo                    = campoOriginal.TipoCampo,
                PermiteNulo                  = campoOriginal.PermiteNulo,
                SomenteNumero                = campoOriginal.SomenteNumero,
                SomenteLetra                 = campoOriginal.SomenteLetra,
                Largura                      = campoOriginal.Largura,
                ExibirImpressao              = campoOriginal.ExibirImpressao,
                ExibirAjudaImpressao         = campoOriginal.ExibirAjudaImpressao,
                CampoDivisor                 = campoOriginal.CampoDivisor,
                Ajuda                        = campoOriginal.Ajuda,
                Questionario                 = campoOriginal.Questionario,
                CamposVinculadosOriginaisIDs =
                    campoOriginal.ListaCamposVinculados.Select(c => new { c.ID }).Select(c => c.ID).ToList()
            };

            bmCampo.SalvarSemCommit(campoNovo);

            var bmAlternativa = new BMAlternativa();

            foreach (var alternativa in campoOriginal.ListaAlternativas)
            {
                var alternativaNova = new Alternativa
                {
                    Campo     = campoNovo,
                    Nome      = alternativa.Nome,
                    Ordem     = alternativa.Ordem,
                    TipoCampo = alternativa.TipoCampo,
                    CampoVinculadoOriginalId =
                        alternativa.CampoVinculado != null ? (int?)alternativa.CampoVinculado.ID : null
                };

                bmAlternativa.SalvarSemCommit(alternativaNova);

                campoNovo.ListaAlternativas.Add(alternativaNova);
            }

            return(campoNovo);
        }
Esempio n. 2
0
        public void DuplicarSubDadosObjeto(Etapa etapa)
        {
            if (etapa.EtapaRetornoOriginalID.HasValue)
            {
                etapa.EtapaRetorno =
                    etapa.Processo.ListaEtapas.FirstOrDefault(
                        x => x.OriginalID == etapa.EtapaRetornoOriginalID);
            }

            repositorio.SalvarSemCommit(etapa);

            foreach (var campo in etapa.ListaCampos.Where(x => x.CamposVinculadosOriginaisIDs.Any()))
            {
                campo.ListaCamposVinculados =
                    etapa.ListaCampos.Where(
                        x =>
                        campo.CamposVinculadosOriginaisIDs.Contains(x.OriginalID)).ToList();
            }

            foreach (var campo in etapa.ListaCampos.Where(x => x.ListaAlternativas.Any(a => a.CampoVinculadoOriginalId.HasValue)))
            {
                var bmAlternativa = new BMAlternativa();

                foreach (
                    var alternativa in
                    campo.ListaAlternativas.Where(a => a.CampoVinculadoOriginalId.HasValue))
                {
                    alternativa.CampoVinculado =
                        etapa.ListaCampos.FirstOrDefault(
                            x =>
                            x.OriginalID == alternativa.CampoVinculadoOriginalId);

                    bmAlternativa.SalvarSemCommit(alternativa);
                }
            }
        }