예제 #1
0
        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);
            }
        }