public void EnviarEmail(List <CredenciadoPessoa> credenciados, int orgaoParceiroId)
        {
            try
            {
                if (!_validar.VerificarSituacao(orgaoParceiroId))
                {
                    return;
                }

                using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                {
                    _validar.VerificarCredenciadoAssociadoOrgao(credenciados, bancoDeDadosCredenciado);
                }

                if (credenciados.Count < 1)
                {
                    return;
                }

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

                    foreach (CredenciadoPessoa credenciado in credenciados)
                    {
                        _busCredenciado.EnviarEmail(credenciado, credenciado.Email, cadastro: true, banco: bancoDeDados);
                    }

                    if (Validacao.EhValido)
                    {
                        using (BancoDeDados bancoCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                        {
                            bancoCredenciado.IniciarTransacao();

                            foreach (CredenciadoPessoa credenciado in credenciados)
                            {
                                credenciado.Situacao = (int)eCredenciadoSituacao.AguardandoAtivacao;
                                _busCredenciado.AlterarSituacao(credenciado, bancoCredenciado);

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

                            if (!Validacao.EhValido)
                            {
                                bancoCredenciado.Rollback();
                            }
                            else
                            {
                                bancoCredenciado.Commit();
                            }
                        }
                    }

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

                    bancoDeDados.Commit();
                    Validacao.Add(Mensagem.OrgaoParceiroConveniado.ChaveGeradaSucesso);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
예제 #2
0
 public bool EnviarEmail(CredenciadoPessoa credenciado, string email, bool cadastro = true, BancoDeDados banco = null)
 {
     return(_busCredenciado.EnviarEmail(credenciado, email, cadastro, banco));
 }