Esempio n. 1
0
        public void DuplicarObjeto(int idProcesso)
        {
            using (var transaction = repositorio.ObterTransacao())
            {
                try
                {
                    var processoOriginal = ObterPorId(idProcesso);

                    if (processoOriginal != null)
                    {
                        var processoNovo = new Processo
                        {
                            ID    = 0,
                            Nome  = processoOriginal.Nome + " - Cópia",
                            Ativo = processoOriginal.Ativo,
                            ListaProcessoResposta = null,
                            ListaEtapas           = new List <Etapa>(),
                            Uf   = processoOriginal.Uf,
                            Tipo = processoOriginal.Tipo
                        };

                        repositorio.SalvarSemCommit(processoNovo);

                        var bmEtapa = new BMEtapa();

                        foreach (var etapaOriginal in processoOriginal.ListaEtapas)
                        {
                            processoNovo.ListaEtapas.Add(bmEtapa.DuplicarObjeto(etapaOriginal, false, processoNovo));
                        }

                        // Reloopar para obter os dados relacionados.
                        foreach (var etapa in processoNovo.ListaEtapas)
                        {
                            bmEtapa.DuplicarSubDadosObjeto(etapa);
                        }

                        transaction.Commit();
                    }
                }
                catch (Exception)
                {
                    transaction.Rollback();

                    throw;
                }
            }
        }
Esempio n. 2
0
        public void Excluir(Campo campo)
        {
            // Remover dependências do campo.
            using (repositorio.ObterTransacao())
            {
                try
                {
                    var respostas = new BMCampoResposta().ObterRespostasPorCampo(campo.ID);

                    var bmCampoResposta = new BMCampoResposta();

                    foreach (var resposta in respostas)
                    {
                        // Remover Alternativas Respostas
                        var bmAltRes = new BMAlternativaResposta();
                        var alternativasRespostas = bmAltRes.ObterPorCampoRespostaId(resposta.ID);

                        foreach (var alternativaResposta in alternativasRespostas)
                        {
                            bmAltRes.Excluir(alternativaResposta);
                        }

                        // Remover Resposta
                        bmCampoResposta.Excluir(resposta);
                    }

                    // Remover Alternativas
                    var bmAlt        = new BMAlternativa();
                    var alternativas = bmAlt.ObterPorCampoId(campo.ID);

                    foreach (var alternativa in alternativas)
                    {
                        bmAlt.Excluir(alternativa);
                    }

                    // Finalmente, excluir o campo.
                    repositorio.Excluir(campo);

                    repositorio.Commit();
                }
                catch
                {
                    repositorio.RollbackTransaction();
                    throw;
                }
            }
        }
Esempio n. 3
0
        public void Salvar(UsuarioTrilhaMensagemGuia usuarioTrilhaMensagemGuia)
        {
            _repositorio.LimparSessao();

            try
            {
                using (_repositorio.ObterTransacao())
                {
                    _repositorio.SalvarSemCommit(usuarioTrilhaMensagemGuia);

                    _repositorio.Commit();
                }
            }
            catch (Exception)
            {
                _repositorio.RollbackTransaction();
            }
        }