Пример #1
0
        public Etapa DuplicarObjeto(Etapa etapaOriginal, bool concatenarCopiaAoNome, Processo processoNovo = null)
        {
            var etapaNova = new Etapa
            {
                OriginalID        = etapaOriginal.ID,
                Nome              = etapaOriginal.Nome + (concatenarCopiaAoNome ? " - Cópia" : ""),
                RequerAprovacao   = etapaOriginal.RequerAprovacao,
                Ordem             = etapaOriginal.Ordem,
                PrimeiraEtapa     = etapaOriginal.PrimeiraEtapa,
                VisivelImpressao  = etapaOriginal.VisivelImpressao,
                UsuarioAssinatura = etapaOriginal.UsuarioAssinatura,
                FileServer        = etapaOriginal.FileServer != null
                    ? new FileServer
                {
                    NomeDoArquivoOriginal   = etapaOriginal.FileServer.NomeDoArquivoOriginal,
                    NomeDoArquivoNoServidor = etapaOriginal.FileServer.NomeDoArquivoNoServidor,
                    TipoArquivo             = etapaOriginal.FileServer.TipoArquivo,
                    MediaServer             = etapaOriginal.FileServer.MediaServer
                }
                    : null,
                NomeFinalizacaoEtapa         = etapaOriginal.NomeFinalizacaoEtapa,
                NomeBotaoFinalizacao         = etapaOriginal.NomeBotaoFinalizacao,
                NomeReprovacaoEtapa          = etapaOriginal.NomeReprovacaoEtapa,
                NomeBotaoReprovacao          = etapaOriginal.NomeBotaoReprovacao,
                PodeSerAprovadoChefeGabinete = etapaOriginal.PodeSerAprovadoChefeGabinete,
                NotificaDiretorAnalise       = etapaOriginal.NotificaDiretorAnalise,
                NotificarNucleo        = etapaOriginal.NotificarNucleo,
                PrazoEncaminhamento    = etapaOriginal.PrazoEncaminhamento,
                Processo               = processoNovo ?? etapaOriginal.Processo,
                EtapaRetornoOriginalID = etapaOriginal.EtapaRetorno != null
                    ? (int?)etapaOriginal.EtapaRetorno.ID
                    : null
            };

            repositorio.SalvarSemCommit(etapaNova);

            var bmCampo = new BMCampo();

            DuplicarPermissoes(etapaOriginal, etapaNova);

            foreach (var campoOriginal in etapaOriginal.ListaCampos)
            {
                var campoNovo = DuplicarCampo(campoOriginal, etapaNova, bmCampo);

                etapaNova.ListaCampos.Add(campoNovo);
            }

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