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); } }