Пример #1
0
        private void btnIngresar_Click(object sender, EventArgs e)
        {
            //Verifico que los campos no esten vacios
            if (String.IsNullOrEmpty(txtUsuario.Text) || String.IsNullOrEmpty(txtPass.Text))
            {
                MessageBox.Show("Por favor complete los campos requeridos");
                return;
            }
            string usuarioCifrado = BLL.Cifrado.Encriptar(txtUsuario.Text.ToUpper(), true);
            string passCifrado    = BLL.Cifrado.Encriptar(txtPass.Text.ToUpper(), false);

            try
            {
                int        error_verificado = BLL.DigitoVerificador.VerificarDV();
                BE.Usuario usuario;
                usuario = _usuarioBLL.Login(usuarioCifrado);
                if (usuario.contrasena != passCifrado)
                {
                    int bloqueado = _usuarioBLL.BloquearUsuario(usuario);

                    switch (bloqueado)
                    {
                    case 0:
                        break;

                    case 1:
                        MessageBox.Show("El usuario se encuentra bloqueado");
                        return;

                    case 2:
                        MessageBox.Show("Usuario o contraseña incorrectos");
                        return;
                    }
                }
                if (usuario.contador == 3)
                {
                    var esAdmin = _usuarioBLL.VerificarPermisos(usuario);
                    if (esAdmin)
                    {
                        var opcion = MessageBox.Show("El usuario se encuentra bloqueado, desea desbloquearlo ?", "Desbloquear Usuario?", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                        if (opcion == DialogResult.OK)
                        {
                            //Desbloquear usuario admin
                            _usuarioBLL.DesbloquearUsuarioAdmin(usuario);
                        }
                        else
                        {
                            return;
                        }
                    }
                }
                _usuarioBLL.DesbloquearUsuario(usuario);
                _permisoBll.FillUserComponents(usuario);
                var _esAdmin = _usuarioBLL.VerificarPermisos(usuario);

                if (error_verificado == 1)
                {
                    if (_esAdmin)
                    {
                        string mensaje = "";
                        //muestra pantalla para reestablecer.
                        var idioma = cmbIdioma.SelectedItem as BE.Idioma;
                        if (idioma.Nombre == "Español")
                        {
                            mensaje = "Desea ver la bitacora del sistema?";
                        }
                        else
                        {
                            mensaje = "Do you want to see the system log?";
                        }
                        var opcion = MessageBox.Show(mensaje, "Error de integridad", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                        if (opcion == DialogResult.Yes)
                        {
                            this.Hide();
                            ReestablecerSistema formRestablecer = new ReestablecerSistema(usuario);
                            formRestablecer.Show();
                            formRestablecer.FormClosed += new FormClosedEventHandler(Login_FormClosed);
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Ocurrio un error, por favor contacte con el administrador del sistema.");
                        return;
                    }
                }

                _bitacoraBll.RegistrarBitacora(usuario, $@"El usuario {txtUsuario.Text} ingreso en el sistema", 3);

                Services.SessionManager.Login(usuario, cmbIdioma.SelectedItem as BE.Idioma);

                MessageBox.Show("Ingreso Correcto");
                this.Hide();
                Logicar formLogicar = new Logicar();
                var     cerro       = formLogicar.ShowDialog();
                if (cerro == DialogResult.Cancel)
                {
                    this.Show();
                }
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message);
            }
        }