예제 #1
0
        public void CancelarEnvio(int projetoId)
        {
            try
            {
                ProjetoDigital projeto = Obter(projetoId);

                if (_validar.CancelarEnvio(projeto))
                {
                    projeto.Situacao = (int)eProjetoDigitalSituacao.EmElaboracao;
                    projeto.Etapa    = (int)eProjetoDigitalEtapa.Caracterizacao;

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();

                        int solicitacao = new RequerimentoCredenciadoDa().PossuiSolicitacaoCARValidaSuspensaPendente(projeto.RequerimentoId);
                        if (solicitacao > 0)
                        {
                            new CARSolicitacaoBus().AlterarSituacao(
                                new CARSolicitacao()
                            {
                                Id = solicitacao
                            },
                                new CARSolicitacao()
                            {
                                SituacaoId = (int)eCARSolicitacaoSituacao.Invalido
                            },
                                bancoDeDados);
                        }

                        TituloDeclaratorioBus tituloDeclaratorioBus = new TituloDeclaratorioBus();
                        tituloDeclaratorioBus.AcerrarTitulo(projeto.RequerimentoId);
                        if (!Validacao.EhValido)
                        {
                            bancoDeDados.Rollback();
                            return;
                        }

                        _da.CancelarEnvio(projeto, bancoDeDados);

                        ExcluirTemporario(projeto.Id);

                        Validacao.Add(Mensagem.ProjetoDigital.CancelarEnvio);

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }