public bool DesbloquearCredenciados(List <CredenciadoPessoa> credenciados) { bool retorno = true; try { if (!_validar.VerificarSituacao(credenciados[0].OrgaoParceiroId)) { Validacao.Add(Mensagem.OrgaoParceiroConveniado.OrgaoParceiroBloqueado(Obter(credenciados[0].OrgaoParceiroId).SiglaNome)); return(false); } using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { _validar.VerificarCredenciadoAssociadoOrgao(credenciados, bancoDeDados); foreach (CredenciadoPessoa credenciado in credenciados) { //Metodo especifico para Orgaos Parceiros eCredenciadoSituacao situacao = eCredenciadoSituacao.AguardandoChave; if (!_busCredenciado.IsCredenciadoAtivoAlgumaVez(credenciado.Id)) { situacao = eCredenciadoSituacao.AguardandoAtivacao; } _busCredenciado.RegerarChave(credenciado.Id, bancoDeDados, situacao); if (!Validacao.EhValido) { break; } } if (!Validacao.EhValido) { bancoDeDados.Rollback(); return(false); } bancoDeDados.Commit(); } } catch (Exception exc) { Validacao.AddErro(exc); } return(retorno); }
public void RegerarChave(int id, BancoDeDados banco = null, eCredenciadoSituacao situacao = eCredenciadoSituacao.AguardandoChave) { try { CredenciadoPessoa credenciado = Obter(id, true, banco); credenciado.Id = id; credenciado.Situacao = (int)situacao; credenciado.Pessoa = ObterPessoaCredenciado(credenciado.Pessoa.Id, banco); if (!_validar.RegerarChave(credenciado.Pessoa)) { return; } string nome = credenciado.Pessoa.NomeRazaoSocial; string email = credenciado.Pessoa.MeiosContatos.Find(x => x.TipoContato == eTipoContato.Email).Valor; credenciado.Chave = GerarChaveAcesso(email, nome); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, UsuarioCredenciado)) { bancoDeDados.IniciarTransacao(); GerenciadorTransacao.ObterIDAtual(); _da.RegerarChave(credenciado, bancoDeDados); EnviarEmail(credenciado, email, false); bancoDeDados.Commit(); Validacao.Add(Mensagem.Credenciado.RegerarChave); } } catch (Exception exc) { Validacao.AddErro(exc); } }