public ActionResult AlterarSituacao(int requerimentoId)
        {
            _busRequerimento.AlterarSituacao(new Requerimento()
            {
                Id = requerimentoId, SituacaoId = 1
            });                                                                                                      // Em andamento

            return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros }, JsonRequestBehavior.AllowGet));
        }
        public void Excluir(int id)
        {
            try
            {
                if (!_validar.Excluir(id))
                {
                    return;
                }

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

                    _da.Excluir(id, bancoDeDados);

                    RequerimentoCredenciadoBus bus = new RequerimentoCredenciadoBus();

                    if (bus.Existe(id))
                    {
                        bool alterou = bus.AlterarSituacao(new Requerimento()
                        {
                            Id = id, SituacaoId = (int)eRequerimentoSituacao.Finalizado
                        });

                        if (!alterou)
                        {
                            Validacao.Add(Mensagem.Requerimento.ExcluirCredenciado(id));
                            bancoDeDados.Rollback();

                            return;
                        }
                    }

                    bancoDeDados.Commit();

                    Validacao.Add(Mensagem.Requerimento.Excluir(id));
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
        public Requerimento Importar(Requerimento requerimento)
        {
            try
            {
                RequerimentoCredenciadoBus busRequerimentoCredenciado = new RequerimentoCredenciadoBus();
                var credenciado = busRequerimentoCredenciado.Obter(requerimento.Id, true);
                credenciado.SetorId = requerimento.SetorId;

                credenciado.Empreendimento.SelecaoTipo = (int)eExecutorTipo.Credenciado;
                credenciado.Pessoas.ForEach(p =>
                {
                    p.SelecaoTipo = (int)eExecutorTipo.Credenciado;
                });

                List <Pessoa> pessoasRelacionadas = ObterPessoasRelacionadas(credenciado);

                if (_validar.Importar(credenciado, pessoasRelacionadas))
                {
                    credenciado.IsCredenciado = true;
                    GerenciadorTransacao.ObterIDAtual();

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

                        credenciado = ImportarPessoas(credenciado, pessoasRelacionadas, bancoDeDados);

                        if (!Validacao.EhValido)
                        {
                            bancoDeDados.Rollback();
                            return(requerimento);
                        }

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

                            if (credenciado.Empreendimento.Id > 0)
                            {
                                credenciado = ImportarEmpreendimento(credenciado, bancoDeDados, bancoDeDadosCredenciado);
                            }

                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(requerimento);
                            }

                            _da.Importar(credenciado, bancoDeDados);

                            _busProjetoDigitalCredenciado.AlterarEtapaTemporario(requerimento.ProjetoDigitalId, eProjetoDigitalEtapaImportacao.Caracterizacao, bancoDeDados);

                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(requerimento);
                            }

                            busRequerimentoCredenciado.AlterarSituacao(new Requerimento()
                            {
                                Id = credenciado.Id, SituacaoId = (int)eRequerimentoSituacao.Importado
                            }, bancoDeDadosCredenciado);

                            AlterarSituacao(credenciado.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado);

                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(requerimento);
                            }

                            bancoDeDadosCredenciado.Commit();
                        }

                        bancoDeDados.Commit();
                        Validacao.Add(Mensagem.ProjetoDigital.RequerimentoImportado(requerimento.Numero.ToString()));
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(requerimento);
        }