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