private void btnRecuperar_Click(object sender, EventArgs e)
        {
            List <Usuario> usuario;

            usuario = listaUsuarios.Where(x => x.Nombre.ToUpper().Equals(textNomUsuario.Text.ToUpper()) && x.Dni.Equals(textDniUsuario.Text)).ToList();

            var result = (from usuarios in listaUsuarios
                          where usuarios.Nombre.ToUpper().Equals(textNomUsuario.Text.ToUpper()) &&
                          usuarios.Dni.Equals(textDniUsuario.Text)
                          select usuarios);

            if (result != null)
            {
                foreach (Usuario item in result)
                {
                    FormularioCambioContrasenya formularioCambio = new FormularioCambioContrasenya(item);
                    formularioCambio.ShowDialog();
                    this.Close();
                }
            }
            else
            {
                lbError.ForeColor = System.Drawing.Color.Red;
                lbError.Text      = "No existe ese usuario.";
            }
        }
Exemplo n.º 2
0
        private void Login(object sender, EventArgs e)
        {
            string  nombre   = txtNombre.Text;
            string  password = txtPass.Text;
            Usuario usuario;



            if (numerointentosLogin > 0)
            {
                // Primero validamos que se han rellenado ambos campos, sino mostraremos un error
                if (!"".Equals(nombre) && !"".Equals(password))
                {
                    // Si aún quedan intentos de login por realizar, intentamos acceder a la aplicación con los datos introducidos
                    // por el usuario


                    bool usuarioLogueado = _neg.Validar2(txtNombre.Text, txtPass.Text, out usuario);
                    // Si se puede loguear al usuario, se comprueba si es el primer login (para que establezca una nueva contraseña)
                    // o se redirige al usuario al formulario principal
                    if (usuarioLogueado)
                    {
                        if (txtPass.Text.Equals(usuario.Email))
                        {
                            DialogResult result = MessageBox.Show("¿Desea entrar a de la aplicación?,debe crear una contraseña valida",
                                                                  "Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                            if (result == DialogResult.Yes)
                            {
                                FormularioCambioContrasenya formularioCambioContrasenya = new FormularioCambioContrasenya(usuario);
                                formularioCambioContrasenya.ShowDialog();
                            }
                        }
                        else
                        {
                            FormularioPrincipal formularioPrincipal = new FormularioPrincipal(nombre);

                            formularioPrincipal.Show();
                            this.Hide();
                        }
                    }
                    // Si no se puede loguear al usuario mostramos el error y quitamos un intento de los disponibles
                    else
                    {
                        numerointentosLogin--;
                        labelinfoLogin.ForeColor = System.Drawing.Color.Red;
                        labelinfoLogin.Text      = "Usuario o contraseña inválido. Inténtalo de nuevo.\nTe quedan " + numerointentosLogin + " intentos";
                    }
                }


                else if ("".Equals(password) && !"".Equals(nombre))
                {
                    bool usuarioLogueado = _neg.Validar2(txtNombre.Text, txtPass.Text, out usuario);

                    DialogResult result = MessageBox.Show("¿Desea entrar a de la aplicación?,debe crear una contraseña valida",
                                                          "Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (result == DialogResult.Yes)
                    {
                        FormularioCambioContrasenya formularioCambioContrasenya = new FormularioCambioContrasenya(usuario);
                        formularioCambioContrasenya.ShowDialog();
                    }
                    else
                    {
                        Application.Exit();
                    }
                }
                else
                {
                    labelinfoLogin.ForeColor = System.Drawing.Color.Red;
                    labelinfoLogin.Text      = "Introduce el usuario y la contraseña para acceder a la aplicación.";
                    numerointentosLogin--;
                }
            }
            // Cuando se exceden los intentos disponibles, sólo se mostrará un botón para cerrar la aplicación y el mensaje correspondiente
            else if (numerointentosLogin == 0)
            {
                labelinfoLogin.ForeColor = System.Drawing.Color.Red;
                labelinfoLogin.Text      = "Se han excedido el número de intentos.\nLa aplicacion se cerrará.";
                Application.Exit();
                btnLogin.Text    = "Cerrar";
                btnSalir.Visible = false;
            }
        }