//Método para la Modificación de los diferentes aspectos de un trabajador en concreto public static void ModificarTrabajador(ref Trabajador[] listaTrabajadores) { int posicion = 0; string eleccion = null; string dni = null; bool salir = false, existe = false; bool error = false; string pregunta = null; string mensaje = null; if (error == false) { dni = Interfaz.PlantillaPedirDni(); //Pedimos el DNI a modificar con la plantilla de la intefaz existe = ExisteTrabajador(listaTrabajadores, dni, ref posicion); } if (existe) { do { try { //Llamamos a la plantilla para ver la elección escogida eleccion = Interfaz.PlantillaEleccionModificar(); switch (eleccion) //Según la elección escogida realiza una acción u otra { //Caso 1: Modificación del DNI case "1": listaTrabajadores[posicion].dni_pre = Interfaz.ElementoModificar(eleccion); break; //Caso 2: Modificación del NOMBRE case "2": listaTrabajadores[posicion].nombre_pre = Interfaz.ElementoModificar(eleccion); break; //Caso 1: Modificación de los APELLIDOS case "3": listaTrabajadores[posicion].apellidos_pre = Interfaz.ElementoModificar(eleccion); break; } error = false; mensaje = "Operación realizada con éxito."; pregunta = "¿Quieres modificar otro aspecto? s/n >> "; Interfaz.Continuar(mensaje); Interfaz.Pregunta(ref pregunta, ref salir); Ficheros.GuardarTrabajadores(listaTrabajadores); // Si todo ha sido validado, lo guardamos en el fichero } catch (Exception ex) { Interfaz.Error(ex.Message); Interfaz.Continuar(); salir = false; error = true; } } while (!salir); } }
//Método para borrar un trabajador public static void BorrarTrabajador(ref Trabajador[] listaTrabajadores) { Trabajador[] copia; int posicion = 0; string dni = null; bool existe = false; //bool correcto = false; string mensaje; int j = 0; //Vamos a pedir el DNI para buscar a la persona que vamos a borrar dni = Interfaz.PlantillaPedirDni(); //En segundo lugar buscamos si existe dicho DNI introducido. existe = ExisteTrabajador(listaTrabajadores, dni, ref posicion); // Condición para conocer si la cuenta se encuentra sin saldo y además si existe. if (existe == true) { // Creamos un array de Copia para volcar los datos, con longitud de los trabajadores -1 copia = new Trabajador[listaTrabajadores.Length - 1]; /* For para recorrer el array, si encotnramos dicho DNI, borramos dicha posición y datos.*/ for (int i = 0; i < listaTrabajadores.Length; i++, j++) { if (i != posicion) { copia[j] = listaTrabajadores[i]; } else { j -= 1; } } //Array dinámico listaTrabajadores = new Trabajador[copia.Length]; copia.CopyTo(listaTrabajadores, 0); //Ponemos el array de copia en Null para ahorrar memoria copia = null; mensaje = "Trabajador borrado con éxito"; Interfaz.Continuar(mensaje); Interfaz.Continuar(); } else { mensaje = "El trabajador que está intentando borrar no existe.\n"; Interfaz.Error(mensaje); Interfaz.Continuar(); } }