private void btnLogin_Click(object sender, EventArgs e)//Si se presiona el boton login o se presiona enter dentro del textbox contrasena { try { if (txtCedula.MaskFull == true && txtContra.Text.Length > 0) //revisa si hay 11 digitos ingresados para la cedula { string Cedula = metodos.Filtrar(txtCedula); //le quita los guiones a la cedula UsuarioTableAdapter adapter = new UsuarioTableAdapter(); //para usar los query de la tabla usuarios UsuarioDataTable data = adapter.BuscarPorCedulaU(Cedula); //busca por la cedula y lo armacena en data if (data.Rows.Count > 0) //si es igual a 0 quiere decir que no se encontró la cedula, por lo que no se puede iniciar sesión { foreach (UsuarioRow item in data) //Se usa foreach para facilitar el manejo de los campos de la tabla usuarios { if (Cedula == item.Cedula && txtContra.Text == item.Contraseña && item.Activo == true) //aqui comprueba que la cedula, contrasena y el estado, que debe ser activo, son los correctos para iniciar sesión { usuario.Id = item.IdUsuario; //Se guarda el id del usuario que inicia sesión usuario.Tipo = item.TipoUsuario; //Se guarda el tipo del usuario que inicia sesión usuario.Apellidos = item.Apellidos; //Se guarda el apellido del usuario que inicia sesión usuario.Nombre = item.Nombre; //Se guarda el nombre del usuario que inicia sesión usuario.Cedula = item.Cedula; //Se guarda la cedula del usuario que inicia sesión usuario.Contra = item.Contraseña; //Se guarda la contrasena del usuario que inicia sesión string tipoUsuario = usuario.Tipo == 1 ? "Administrador" : "Cajero"; MessageBox.Show($"{usuario.Nombre} {usuario.Apellidos} con la cedula: {usuario.Cedula} entró al sistema como {tipoUsuario}"); //MessageBox para notificar que se inició sesión correctamente log.Info($"{usuario.Nombre} {usuario.Apellidos} con la cedula: {usuario.Cedula} entró al sistema como {tipoUsuario}"); //Hace el log de quien inicia sesión this.Hide(); //Cierra la ventana de login frmMenu menu = new frmMenu(usuario); //Abre la ventada de menu pasandole los datos del usuario menu.Show(); //Se muestra la ventana menú } else //Si coincide la cedula con la contra o el usuario no esta activo se hace lo siguiente { if (item.Activo != true) //Aunque coincidan la contra y la cedula no podrá iniciar sesión debido a que no está activo { MessageBox.Show($"{item.Nombre} {item.Apellidos} no está activo en el sistema", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); //Aqui le deja saber al usuario que los datos del usuario ingresado no se encuentra activo txtCedula.Text = ""; txtContra.Text = ""; //para limpiar el txtCedula y txtContra txtCedula.Focus(); //Para hacer focus en el txtCedula log.Warn($"{item.Nombre} {item.Apellidos} intentó ingresar al sistema pero no se encuentra activo"); //log para dejar saber que el usuario intentó ingresar estando inactivo } else if (txtContra.Text != item.Contraseña) //Aqui se hace lo siguiente si no coincide la contra { MessageBox.Show("Contraseña y/o cédula incorrecta, intente de nuevo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); //Le deja saber al usuario que la contrasena que ingresó no es la correcta log.Info($"Se intentó iniciar sesión con la cédula: {txtCedula.Text} y la contraseña: {txtContra.Text}"); //log para dejar saber que se intentó iniciar sesión } } } } else//Si no se encuentra la cedula se hace lo siguiente { MessageBox.Show("Contraseña y/o cédula incorrecta, intente de nuevo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); //Le deja saber al usuario que la cedula que ingresó no esta en la base de datos log.Info($"Se intentó iniciar sesión con la cédula: {txtCedula.Text} y la contraseña: {txtContra.Text}"); //log para dejar saber que se intentó iniciar sesión con datos erroneos } } else//si no hay 11 digitos en la cedula y la contraseña ingresada se hace lo siguiente { string mensaje = "Debe realizar lo siguiente:"; if (!txtCedula.MaskFull) { mensaje += "\nIngresar los 11 dígitos de la cédula"; } if (txtContra.Text.Length == 0) { mensaje += "\nIngresar su contraseña"; } MessageBox.Show(mensaje, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); //le deja saber al usuario que faltan digitos } } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }