public static bool ValidarContraseña(string password)
 {
     string originalpassword = null;
     Ficheros.CheckPass(ref originalpassword);
     if (Encriptacion.Encriptar(password).Equals(originalpassword))
     {
         return true;
     }
     else
     {
         return false;
     }
 }
 public static void ModPass(string newpassword) // METODO PARA MODIFICAR LA CONTRASEÑA QUE SE NECESITA PARA MODIFICAR EL ARCHIVO DE CONFIGURACIÓN
 {
     try {
         string       path = "Pass.txt";
         StreamWriter sw   = File.CreateText(rutaConf + path); // "PREPARA AL FICHERO PARA LEER"
         sw.WriteLine(Encriptacion.Encriptar(newpassword));    // ESCRIBE LA NÓMINA FINAL EN EL FICHERO TXT
         sw.Close();                                           // CIERRA EL ARCHIVO
     }
     catch (FileNotFoundException)
     {
         throw new Exception("Archivo no encontrado.");
     }
     catch (FileLoadException)
     {
         throw new Exception("Fallo al cargar el archivo.");
     }
 }
        public static void CheckArchivoPass() // SI NO EXISTE EL ARCHIVO DE PASSWORD LO CREA POR DEFECTO. LA CONTRASEÑA POR DEFECTO ES "1234"
        {
            string filename = "Pass.txt";

            try
            {
                if (!File.Exists(rutaConf + filename) || new FileInfo(rutaConf + filename).Length == 0) // COMPRUEBA SI EL ARCHIVO EXISTE O NO CONTIENE NADA
                {
                    StreamWriter sw = File.CreateText(rutaConf + filename);                             // "CREA EL FICHERO"
                    sw.WriteLine(Encriptacion.Encriptar("1234"));                                       // ESCRIBE LA NÓMINA FINAL EN EL FICHERO TXT
                    sw.Close();                                                                         // CIERRA EL ARCHIVO
                }
            }
            catch (FileNotFoundException)
            {
                throw new Exception("Archivo no encontrado.");
            }
        }
        // LEER TRABAJADORES
        public static Trabajador[] getTrabajadores() // OBTIENE LA BASE DE DATOS DE TRABAJADORES, DEVUELVE UN ARRAY DE TRABAJADORES DE LA EMPRESA
        {
            doc = new XmlDocument();
            Trabajador trb = null;

            Trabajador[] trbArray = null;
            string       dni, nombre, apellidos;

            try
            {
                doc.Load(rutaEMP);
                XmlNodeList listaEmpleados = doc.SelectNodes("Plantilla/Trabajador"); // SELECCIONA LOS NODOS TRABAJADOR DENTRO DEL NODO RAIZ
                XmlNode     unEmpleado;

                trbArray = new Trabajador[listaEmpleados.Count];
                for (int i = 0; i < listaEmpleados.Count; i++)
                {
                    trb               = new Trabajador();
                    unEmpleado        = listaEmpleados.Item(i);
                    dni               = Encriptacion.DesEncriptar(unEmpleado.Attributes.GetNamedItem("DNI").InnerText); // OBTIENE EL DNI
                    trb.dni_pre       = dni.ToString();
                    nombre            = Encriptacion.DesEncriptar(unEmpleado.SelectSingleNode("Nombre").InnerText);     // OBTIENE EL NOMBRE
                    trb.nombre_pre    = nombre;
                    apellidos         = Encriptacion.DesEncriptar(unEmpleado.SelectSingleNode("Apellidos").InnerText);  // OBTIENE EL/LOS APELLIDOS
                    trb.apellidos_pre = apellidos;
                    trbArray[i]       = trb;                                                                            // GUARDA EL TRABAJADOR EN EL ARRAY
                }
            }
            catch (FileNotFoundException)
            {
                throw new Exception("Archivo no encontrado");
            }
            catch (ArgumentException)
            {
                throw new Exception("El archivo al que trata de acceder esta vacio. Por favor inserte minimo un trabajador.");
            }
            catch (XmlException)
            {
                throw new Exception("No se ha podido abrir el archivo, revise el contenido.");
            }
            return(trbArray);
        }
        // FIN CREAR TRABAJADORES

        public static Trabajador GetDatosTrabajador(string dni_trb) // DEVUELVE LOS DATOS DE UN TRABAJADOR EN PARTICULAR (PARA MOSTRAROS EN LA NÓMINA)
        {
            doc = new XmlDocument();
            Trabajador trb = new Trabajador();
            string     dni = null, nombre = null, apellidos = null;

            try
            {
                doc.Load(rutaEMP);
                XmlNodeList listaEmpleados = doc.SelectNodes("Plantilla/Trabajador"); // OBTIENE LOS NODOS DE TRABAJADOR
                XmlNode     empleado       = null;
                trb = new Trabajador();
                for (int i = 0; i < listaEmpleados.Count; i++)
                {
                    empleado = listaEmpleados.Item(i);
                    dni      = Encriptacion.DesEncriptar(empleado.Attributes.GetNamedItem("DNI").InnerText);
                    if (dni.Equals(dni_trb))                                        // SI EL DNI DEL TRABAJADOR COINCIDE CON EL PASADO POR PARAMETRO, DEVUELVE LOS DATOS DE ESTE.
                    {
                        trb.dni_pre       = dni_trb;
                        nombre            = Encriptacion.DesEncriptar(empleado.SelectSingleNode("Nombre").InnerText);    // OBTIENE EL NOMBRE
                        trb.nombre_pre    = nombre;
                        apellidos         = Encriptacion.DesEncriptar(empleado.SelectSingleNode("Apellidos").InnerText); // OBTIENE EL/LOS APELLIDOS
                        trb.apellidos_pre = apellidos;
                    }
                }
                return(trb); // DEVUELVE UN OBJETO TRABAJADOR
            }
            catch (FileNotFoundException)
            {
                throw new Exception("Archivo no encontrado");
            }
            catch (ArgumentException)
            {
                throw new Exception("El archivo al que trata de acceder esta vacio. Por favor inserte minimo un trabajador.");
            }
            catch (XmlException)
            {
                throw new Exception("No se ha podido abrir el archivo, revise el contenido.");
            }
        }
        // CREAR TRABAJADORES
        public static void GuardarTrabajadores(Trabajador[] trb) // GUARDAR LOS TRABAJADORES EN EL ARCHIVO XML
        {
            doc = new XmlDocument();
            bool salir = false;

            Format(); // FORMATEA EL ARCHIVO ANTES DE GUARDAR
            do
            {
                if (trb.Length != 0)
                {
                    for (int i = 0; i < trb.Length; i++)
                    {
                        doc.Load(rutaEMP);
                        XmlNode    root = doc.DocumentElement;
                        XmlElement nodo = doc.CreateElement("Trabajador"); // INTRODUCE EL NODO TRABAJADOR JUNTO CON SUS ELEMENTOS HIJOS
                        root.AppendChild(nodo);

                        XmlAttribute dni = doc.CreateAttribute("DNI"); // ELEMENTO DNI ENCRIPTADO
                        dni.Value = Encriptacion.Encriptar(trb[i].dni_pre);
                        nodo.Attributes.Append(dni);

                        XmlElement nombre = doc.CreateElement("Nombre"); // ELEMENTO NOMBRE ENCRIPTADO
                        nombre.AppendChild(doc.CreateTextNode(Encriptacion.Encriptar(trb[i].nombre_pre)));
                        nodo.AppendChild(nombre);

                        XmlElement apellidos = doc.CreateElement("Apellidos"); // ELEMENTO APELLIDOS ENCRIPTADO
                        apellidos.AppendChild(doc.CreateTextNode(Encriptacion.Encriptar(trb[i].apellidos_pre)));
                        nodo.AppendChild(apellidos);
                        doc.Save(rutaEMP);
                        salir = true;
                    }
                }
                else
                {
                    salir = true;
                }
            } while (!salir);
        }