//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); } }
//CONFIRMACIÓN PARA GUARDAR CAMBIOS public static bool Confirmar() { String cad = null; //CADENA QUE ALMACENA LA PREGUNTA bool confirma = false; //BOOLEANO DE RESPUESTA cad = "\t¿Desea usted guardar los cambios?(s/n)"; Interfaz.Pregunta(ref cad, ref confirma); //LLAMADA AL MÉTODO QUE REALIZA LA PREGUNTA return confirma; }
//Método utilizado para la creación de nuevos trabajadores public static void NuevoTrabajador(ref Trabajador[] listaTrabajadores, int mode) { Trabajador trabtemp; Trabajador[] copia = null; bool salida = false; //Inicialización de variables string mensaje = null; string mensaje2 = null; bool existe = false; // Entrada de Datos do { // ENTRADA trabtemp = Interfaz.PlantillaCrearTrabajador(); existe = ExisteTrabajador(listaTrabajadores, trabtemp.dni_pre); //Comprueba si existe o no el trabajador if (listaTrabajadores == null) //Si la lista de trabajadores está vacía, le asigna una posición { listaTrabajadores = new Trabajador[1]; } if (listaTrabajadores != null) //Como no es nula, debido a la anterior creación de la posición { if (existe == false) { //Gestión dinámica de la memoria copia = new Trabajador[listaTrabajadores.Length]; //Copiamos el tamaño del array de trabajadores listaTrabajadores.CopyTo(copia, 0); //Volcamos el contenido del array de trabajadores en copia listaTrabajadores = new Trabajador[listaTrabajadores.Length + 1]; //Asignamos una posición más copia.CopyTo(listaTrabajadores, 0); //Copiamos todo de nuevo al array de trabajadores copia = null; //Volvemos copia a null para ahorrar memoria listaTrabajadores[listaTrabajadores.Length - 1] = trabtemp; //Asignamos el nuevo trabajador al array mensaje = "Trabajador registrado correctamente"; if (mode == 1)// Modo 1: Creamos empleados por NuevoTrabajadors { mensaje2 = "Desea registrar otro Trabajador (s/n): "; salida = Interfaz.Continuar(mensaje); Interfaz.Pregunta(ref mensaje2, ref salida); Ficheros.GuardarTrabajadores(listaTrabajadores); } else //Creamos empleados desde la nómina. { salida = true; } } else //Si existe el trabajador, asignamos que salga del bucle { salida = true; } } } while (!salida); }