public void AlterarSituacao(OrgaoParceiroConveniado orgao)
        {
            try
            {
                if (!_validar.AlterarSituacao(orgao))
                {
                    return;
                }

                List <CredenciadoPessoa> credenciadosOrgao = new List <CredenciadoPessoa>();

                switch ((eOrgaoParceiroConveniadoSituacao)orgao.SituacaoId)
                {
                case eOrgaoParceiroConveniadoSituacao.Ativo:
                    orgao.SituacaoMotivo = string.Empty;
                    break;

                case eOrgaoParceiroConveniadoSituacao.Bloqueado:
                    credenciadosOrgao = ObterCredenciados(orgao.Id, 0).Where(x => x.Situacao != (int)eCredenciadoSituacao.Bloqueado && x.Situacao != (int)eCredenciadoSituacao.Cadastrado).ToList();
                    Validacao.Erros.Clear();
                    break;
                }

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

                    _da.AlterarSituacao(orgao, bancoDeDados);

                    if (credenciadosOrgao.Count > 0)
                    {
                        using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                        {
                            foreach (CredenciadoPessoa credenciado in credenciadosOrgao)
                            {
                                _busCredenciado.AlterarSituacao(credenciado.Id, "", (int)eCredenciadoSituacao.Bloqueado, "Órgão Parceiro/ Conveniado Bloqueado", bancoDeDadosCredenciado);

                                if (!Validacao.EhValido)
                                {
                                    break;
                                }
                            }

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

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

                    bancoDeDados.Commit();
                }

                Validacao.Add(Mensagem.OrgaoParceiroConveniado.SituacaoAlteradaSucesso);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
예제 #2
0
 public void AlterarSituacao(CredenciadoPessoa credenciado, BancoDeDados banco = null)
 {
     _busCredenciado.AlterarSituacao(credenciado, banco);
 }