Exemplo n.º 1
0
    protected void _btnEnviar_Click(object sender, EventArgs e)
    {
        if (ValidarEsqueciSenha() && Page.IsValid)
        {
            try
            {
                DataTable dt = chkPossuiEmail.Checked ?
                               SYS_UsuarioBO.GetSelectBy_ent_id_usu_email(new Guid(UCComboEntidade2._Combo.SelectedValue), _txtEmail.Text) :
                               SYS_UsuarioBO.SelecionaPorCPFDataNascimento(new Guid(UCComboEntidade2._Combo.SelectedValue), txtCPF.Text, Convert.ToDateTime(txtDtNasc.Text));

                if (dt.Rows.Count == 0)
                {
                    string log = chkPossuiEmail.Checked ?
                                 "Erro no envio de senha. Usuário não encontrado." :
                                 "Erro na alteração de senha. Usuário não encontrado.";
                    ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, log);

                    string mensagem = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.LoginMensagemUsuarioNaoEncontrado);

                    _lblMessage.Text = UtilBO.GetErroMessage(string.IsNullOrEmpty(mensagem) ? "Usuário não encontrado." : mensagem, UtilBO.TipoMensagem.Alerta);
                }
                else
                {
                    byte   usu_integracaoAD = Convert.ToByte(dt.Rows[0]["usu_integracaoAD"]);
                    byte   usu_situacao     = Convert.ToByte(dt.Rows[0]["usu_situacao"]);
                    Guid   usu_id           = new Guid(dt.Rows[0]["usu_id"].ToString());
                    string pes_nome         = dt.Rows[0]["pes_nome"].ToString();

                    switch (usu_integracaoAD)
                    {
                    case (byte)SYS_UsuarioBO.eIntegracaoAD.NaoIntegrado:
                        if (chkPossuiEmail.Checked)
                        {
                            EnviaNovaSenhaEmail(usu_id, usu_situacao, pes_nome, usu_integracaoAD);
                        }
                        else
                        {
                            ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Não é possível alterar a senha de usuários não ligados no Active Directory por data de nascimento e CPF.");
                            _lblMessage.Text = UtilBO.GetErroMessage("Não é possível alterar a senha de usuários não ligados no Active Directory por data de nascimento e CPF.", UtilBO.TipoMensagem.Alerta);
                        }
                        break;

                    case (byte)SYS_UsuarioBO.eIntegracaoAD.IntegradoAD:
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Não é possível recuperar/alterar a senha pois o usuário solicitado está ligado no Active Directory.");
                        _lblMessage.Text = UtilBO.GetErroMessage("Não é possível recuperar/alterar a senha pois o usuário solicitado está ligado no Active Directory, contate o administrador de rede do seu domínio.", UtilBO.TipoMensagem.Alerta);
                        break;

                    case (byte)SYS_UsuarioBO.eIntegracaoAD.IntegradoADReplicacaoSenha:
                        if (chkPossuiEmail.Checked)
                        {
                            EnviaNovaSenhaEmail(usu_id, usu_situacao, pes_nome, usu_integracaoAD);
                        }
                        else
                        {
                            AlterarSenhaEsqueci(usu_id, usu_situacao, usu_integracaoAD);
                        }
                        break;
                    }
                    ;
                }

                ScriptManager.RegisterClientScriptBlock(this, GetType(), "EsqueciSenha", "$('#divEsqueciSenha').dialog('close');", true);
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                _lblMessageEsqueciSenha.Text = chkPossuiEmail.Checked ?
                                               UtilBO.GetErroMessage("Erro ao tentar enviar e-mail com a senha para o usuário.", UtilBO.TipoMensagem.Erro) :
                                               UtilBO.GetErroMessage("Erro ao tentar alterar a senha para o usuário.", UtilBO.TipoMensagem.Erro);
            }
        }
        else
        {
            _updEsqueciSenha.Update();
        }
    }