private void btnEliminar_Click(object sender, EventArgs e)//evento que se dispara cuando das clic al boton actualizar { try { if (txtCedula.MaskFull) //Para que necesariamente el textbox de la cedula tenga 11 digitos { UsuarioTableAdapter adapter = new UsuarioTableAdapter(); //objeto que permite utilizar los querys de tblUsuario string Cedula = metodos.Filtrar(txtCedula); //para guardar la cedula sin los guiones del MaskedTextBox UsuarioDataTable data = adapter.BuscarPorCedulaU(Cedula); //objeto paraguardar la informacion de tblUsuario, en este caso un usuario buscado por su cedula if (data.Count != 0) //verifica que si haya una fila que contenta la informacion del usuario buscado por la cedula { foreach (UsuarioRow item in data) //recorre cada fila, en este caso solo una { string estado = item.Activo == true ? "desactivar" : "activar"; //determina que estado tiene actualmente el usuario buscado por su cedula if (MessageBox.Show($"Está seguro que desea {estado} al usuario {item.Nombre} {item.Apellidos} del sistema?", "Cambiar estado", MessageBoxButtons.YesNo) == DialogResult.Yes) //se le pregunta al usuario si desea cambiar de estado a este usuario, si responde si entonces { string contra = null; //para guardar la contraseña del usuario que usa actualmente el sistema contra = metodos.InputBox("Confirmación de identidad", $"Ingrese su contraseña nuevamente {usuario.Nombre} {usuario.Apellidos}: ", ref contra); //ventana para que el usuario que usa el sistema ingrese nuevamente su contraseña para validar que si es el if (contra == usuario.Contra) //verifica que las contraseñas sean las mismas { adapter.CambiaEstado(Cedula); //cambia de estado al usuario de quien ingresaron su cedula estado = item.Activo == true ? "desactivado del" : "activado en el"; //determina como quedó el estado del usuario MessageBox.Show($"{item.Nombre} {item.Apellidos} fue {estado} sistema", "Cambiar Estado", MessageBoxButtons.OK, MessageBoxIcon.Information); //notifica al usuario que cambió de estado al usuario que ingresó por su cedula log.Info($"{item.Nombre} {item.Apellidos} fue {estado} sistema por el usuario {usuario.Nombre} {usuario.Apellidos}"); //se registra que se cambió de estado un usuario if (item.Cedula == usuario.Cedula) //verifica si el usuario que desactivaron es el que esta usando el sistema { Application.Exit(); //sale del sistema(aplicacion) } txtCedula.Text = ""; //limpia el textbox cedula txtCedula.Focus(); //focus en el textbox cedula } else//si no coinciden las contraseñas { MessageBox.Show("La contraseña ingresada no coincide con su usuario, vuelva a intentarlo", "Cambiar de Estado", MessageBoxButtons.OK, MessageBoxIcon.Error); //notifica al usuario que la contraseña que ingresó no coincide con su contraseña log.Info($"El usuario {usuario.Nombre} {usuario.Apellidos} intentó cambiar de estado a {item.Nombre} {item.Apellidos} pero no ingresó correctamente su contraseña"); //registra que se intentó cambiar de estado a un usuario pero el usuario que usaba el sistema no pudo verificar que en realidad era el al ingresar su contraseña } } } } else//si no encuentra un usuario con esa cedula { MessageBox.Show("No se encontró un usuario con la cédula ingresada, vuelva a intentarlo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);//notifica al usuario que no se encontró ningun usuario con cedula log.Info($"El usuario {usuario.Nombre} {usuario.Apellidos} intentó cambiar de estado al usuario {Cedula} pero este no está ingresado en el sistema");//registra que se trató de buscar un usuario con la cedula ingresada pero no se encontró } } else//si no se ingresó completamente la cedula { MessageBox.Show("Debe ingresar completamente la cédula", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);//notifica al usuario que debe ingresar completamente la cedula txtCedula.Focus();//hace focus en el textbox cedula } } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnAgregar_Click(object sender, EventArgs e)//evento que te activa al dar clic al boton agregar { try { if (txtNombre.Text != "" && txtApellidos.Text != "" && txtTelefono.MaskFull && cboTipo.Text != "" && txtCedula.MaskFull && txtContrasena.TextLength >= 6 && txtContrasena.Text == txtReContrasena.Text) { //Quita todos los label de error UsuarioTableAdapter adapter = new UsuarioTableAdapter(); //objeto para utilizar los querys de tblUsuario UsuarioDataTable data; //objeto que almacena data proveniente de tblUsuario string Cedula = metodos.Filtrar(txtCedula); //quita los guiones de la cedula string telefono = metodos.Filtrar(txtTelefono); //quita los guiones del telefono data = adapter.BuscarPorCedulaU(Cedula); //busca si hay un usuario en tblUsuario con la cedula ingresada if (data.Count == 0) //si no hay ninguna fila significa que noy un usuario con la cedula ingresada { if (txtContrasena.Text == txtReContrasena.Text) //verifica que las contraseñas ingresadas sean la misma { if (MessageBox.Show($"¿Está seguro que desea añadir al usuario {txtNombre.Text} {txtApellidos.Text} al sistema?", "Añadir", MessageBoxButtons.YesNo) == DialogResult.Yes) //pregunta si de verdad desea añadir este usuario, si es si ocurre lo siguiente { string contrasena = null; //string para guardar la contraseña del usuario que usa el sistema contrasena = metodos.InputBox("Reingresar contraseña", $"Reescriba su contraseña {usuario.Nombre}", ref contrasena); //muestra una ventana donde el usuario que esta agregando a otro usuario ingrese su contraseña para verificar que de verdad es el if (contrasena == usuario.Contra) //si la contraseña corresponde al usuario que usa el sistema { int tipoUsuario = cboTipo.Text == "Administrador" ? 1 : 2; //determina que tipo de usuario se registro adapter.InsertarU(tipoUsuario, telefono, txtContrasena.Text, Cedula, txtNombre.Text.Trim(), txtApellidos.Text.Trim(), txtDireccion.Text.Trim(), true); //se inserta el usuario con la informacion que se ingresó log.Info($"Se agregó al sistema el usuario {txtNombre.Text} {txtApellidos.Text} de cédula {Cedula} como {cboTipo.Text} por el administrador {usuario.Nombre} {usuario.Apellidos}"); // se registra que se ingresó un usuario nuevo y su cedula MessageBox.Show($"{txtNombre.Text} {txtApellidos.Text} ha sido añadido al sistema como {cboTipo.Text} exitosamente", "Agregar usuario", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); //le notifica al usuario que se agregó el nuevo usuario this.Limpiar(); //se limpia toda la ventana } else//si la contraseña no es igual a la del usuario que usa el sistema { log.Warn($"Se intentó agregar al sistema el usuario {txtNombre.Text} {txtApellidos.Text} de cédula {Cedula} como {cboTipo.Text}, " + $"pero no se pudo confirmar la identidad del administrador {usuario.Nombre} {usuario.Apellidos} ingresando la siguiente contraseña incorrecta: {txtContrasena.Text}"); //notifica que se intentó agregar un usuario pero fracasó la autenticacion MessageBox.Show("La contraseña ingresada no coincide con su usuario, vuelva a intentarlo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); //notifica al usuario que La contraseña ingresada no coincide con su usuario } } else//si se responde que no { this.Limpiar();//se limpia toda la ventana } } else//si las contraseñas ingresadas no coinciden { MessageBox.Show("Las contraseñas ingresadas no coinciden, favor verificar", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); txtContrasena.Text = ""; //limpia el textbox de la contraseña txtReContrasena.Text = ""; //limpia el textbox para verificar la contraseña } } else//si ya hay un usuario con la cedula ingresa { log.Warn($"Se intentó agregar al sistema el usuario {txtNombre.Text} {txtApellidos.Text} de cédula {Cedula} como {cboTipo.Text}, pero ya hay un usuario con esta cédula con anterioridad " + $"por el administrador {usuario.Nombre} {usuario.Apellidos}"); //notifica que se intentó ingresar un usuario con una cedula que ya pertenece a otro usuario MessageBox.Show("Ya se encuentra un usuario ingresado con esta cedula.\n\nFavor ingresar otra cedula y/o usuario", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); //le notifica al usuario mediante un mensaje que ya hay un usuario ingresado con esta cedula } } else//si no se ingresó toda la informacion necesaria { cboTipo.SelectedItem = 0; this.ErrorAgregar();//no permite que algun campo obligatorio esté vacío } } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
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); } }