/// <summary>
    /// Valida se já existe usuário com o email.
    /// </summary>
    /// <param name="email">Email.</param>
    /// <param name="usu_id">ID do usuário.</param>
    /// <returns></returns>
    public static bool ValidarEmailExistente(string email, Guid usu_id)
    {
        SYS_Usuario entityUsuario = new SYS_Usuario {
            usu_id = usu_id
        };

        SYS_UsuarioBO.GetEntity(entityUsuario);

        entityUsuario.usu_email = email;

        return(string.IsNullOrEmpty(entityUsuario.usu_email) || !(SYS_ParametroBO.Parametro_ValidarUnicidadeEmailUsuario() && SYS_UsuarioBO.VerificaEmailExistente(entityUsuario)));
    }
    /// <summary>
    /// Inicializa os componentes da tela.
    /// </summary>
    private void InicializarTela()
    {
        // Mensagem de informação sobre o cadastro de email da tela de meus dados.
        string mensagem = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemEmail);

        lblInformacao.Text = string.IsNullOrEmpty(mensagem) ? string.Empty :
                             UtilBO.GetErroMessage(mensagem, UtilBO.TipoMensagem.Informacao);

        txtEmail.Enabled = rfvEmail.Visible = revEmail.Visible = cvEmailExistente.Visible = PermiteAlterarEmail;

        bool validarObrigatoriedadeEmail = SYS_ParametroBO.Parametro_ValidarObrigatoriedadeEmailUsuario();

        rfvEmail.Visible = PermiteAlterarEmail && validarObrigatoriedadeEmail;

        cvEmailExistente.Visible = PermiteAlterarEmail && SYS_ParametroBO.Parametro_ValidarUnicidadeEmailUsuario();

        if (PermiteAlterarEmail)
        {
            if (validarObrigatoriedadeEmail && !lblEmail.Text.EndsWith("*"))
            {
                lblEmail.Text = lblEmail.Text + " *";
            }

            lblNovaSenha.Text.Replace("*", "");
            lblConfNovaSenha.Text.Replace("*", "");
        }
        else
        {
            lblEmail.Text.Replace("*", "");

            if (!lblNovaSenha.Text.EndsWith("*"))
            {
                lblNovaSenha.Text = lblNovaSenha.Text + " *";
            }

            if (!lblConfNovaSenha.Text.EndsWith("*"))
            {
                lblConfNovaSenha.Text = lblConfNovaSenha.Text + " *";
            }
        }

        rfvConfNovaSenha.Enabled = revNovaSenhaFormato.Enabled = revNovaSenhaTamanho.Enabled =
            cpvNovaSenha.Enabled = rfvNovaSenha.Enabled = cpvConfNovaSenha.Enabled = !PermiteAlterarEmail;

        if (PermiteAlterarEmail)
        {
            // Mensagem de validação quando o email for inválido.
            mensagem = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemEmailInvalido);
            revEmail.ErrorMessage = string.IsNullOrEmpty(mensagem) ?
                                    "E-mail está fora do padrão ( seuEmail@seuProvedor )." :
                                    mensagem;
        }

        // Mensagem de validação de confirmação da nova senha.
        mensagem = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemConfirmarSenhaNaoIdentico);

        if (!string.IsNullOrEmpty(mensagem))
        {
            cpvConfNovaSenha.ErrorMessage = mensagem;
        }

        mensagem = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemValidacaoComplexidadeSenhaFormato);

        if (!string.IsNullOrEmpty(mensagem))
        {
            revNovaSenhaFormato.ErrorMessage = mensagem;
        }

        mensagem = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemValidacaoComplexidadeSenhaTamanho);

        if (!string.IsNullOrEmpty(mensagem))
        {
            revNovaSenhaTamanho.ErrorMessage = mensagem;
        }

        // Configura formato senha
        revNovaSenhaFormato.ValidationExpression = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.FORMATO_SENHA_USUARIO);
        // Configura tamanho senha
        revNovaSenhaTamanho.ValidationExpression = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TAMANHO_SENHA_USUARIO);

        // Mensagem de validação do formato da senha.
        mensagem = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemValidacaoComplexidadeSenhaFormato);

        if (!string.IsNullOrEmpty(mensagem))
        {
            revNovaSenhaFormato.ErrorMessage = mensagem;
        }

        mensagem = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemValidacaoComplexidadeSenhaTamanho);

        if (!string.IsNullOrEmpty(mensagem))
        {
            revNovaSenhaTamanho.ErrorMessage = mensagem;
        }
        else
        {
            revNovaSenhaTamanho.ErrorMessage = String.Format(revNovaSenhaTamanho.ErrorMessage, UtilBO.GetMessageTamanhoByRegex(revNovaSenhaTamanho.ValidationExpression));
        }

        // Mensagem de complexidade da nova senha.
        mensagem = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemComplexidadeNovaSenha);

        if (!string.IsNullOrEmpty(mensagem))
        {
            lblMsnNovaSenha.Text = mensagem;
        }
        else
        {
            lblMsnNovaSenha.Text = String.Format(lblMsnNovaSenha.Text, UtilBO.GetMessageTamanhoByRegex(revNovaSenhaTamanho.ValidationExpression));
        }

        // Mensagem de validação da senha atual.
        mensagem = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemSenhaAtualIncorreta);
        if (!string.IsNullOrEmpty(mensagem))
        {
            cvSenhaAtual.ErrorMessage = mensagem;
        }

        // Mensagem de validação de email existente.
        mensagem = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemValidacaoEmailExistente);
        if (!string.IsNullOrEmpty(mensagem))
        {
            cvEmailExistente.ErrorMessage = mensagem;
        }

        if (SYS_ParametroBO.ParametroValorBooleano(SYS_ParametroBO.eChave.SALVAR_HISTORICO_SENHA_USUARIO))
        {
            // Mensagem de validação de validação de histórico de senhas..
            mensagem =
                String.Format(SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemValidacaoHistoricoSenha),
                              SYS_ParametroBO.ParametroValorInt32(SYS_ParametroBO.eChave.QUANTIDADE_ULTIMAS_SENHAS_VALIDACAO).ToString());

            if (!string.IsNullOrEmpty(mensagem))
            {
                cvNovaSenhaHistorico.ErrorMessage = mensagem;
            }
        }

        //VERIFICA SE PARÂMETRO DE LOGIN COM PROVIDER EXTERNO ESTÁ HABILITADO(TRUE = MOSTRA O CAMPO / FALSE = NÃO MOSTRA O CAMPO)
        if (SYS_ParametroBO.ParametroValorBooleano(SYS_ParametroBO.eChave.PERMITIR_LOGIN_COM_PROVIDER_EXTERNO))
        {
            divContasExternas.Visible = true;

            //BUSCA O LOGIN PROVIDER DO USUARIO E CASO NÃO FOR NULO EXIBE NO TEXTBOX
            var logins = SYS_UsuarioLoginProviderBO.SelectBy_usu_id(__SessionWEB.__UsuarioWEB.Usuario.usu_id);

            if (logins != null && logins.Count > 0)
            {
                this.rptContasExternas.Visible   = true;
                this.lblInfoContaExterna.Visible = false;

                this.rptContasExternas.DataSource = logins;
                this.rptContasExternas.DataBind();
            }
            else
            {
                this.rptContasExternas.Visible   = false;
                this.lblInfoContaExterna.Visible = true;
                this.lblInfoContaExterna.Text    = UtilBO.GetErroMessage("Usuário não possui contas vinculadas.",
                                                                         UtilBO.TipoMensagem.Informacao);
            }
        }

        mensagem = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemSenhaAtualSenhaNovaDiferenca);

        if (!string.IsNullOrEmpty(mensagem))
        {
            cpvNovaSenha.ErrorMessage = mensagem;
        }

        txtEmail.Text = __SessionWEB.__UsuarioWEB.Usuario.usu_email;
        if (PermiteAlterarEmail)
        {
            txtEmail.Focus();
        }
        else
        {
            txtSenhaAtual.Focus();
        }
    }