예제 #1
0
        /// <summary>
        /// Función que lee el valor del atributo dado del archivo de configuración XML
        /// </summary>
        /// <param name="nodoPrincipal">Sub Nodo principal del cual se leera la información</param>
        /// <param name="nodoSecundario">Nodo secundario que se encuentra dentro del nodo principal del cual se
        /// desea leer su valor</param>
        /// <exception cref="System.Xml.XmlException">Devuelve información detallada sobre la última excepción.</exception>
        /// <exception cref="System.IO.PathTooLongException">Excepción que se produce cuando una ruta de acceso o un nombre de archivo supera la longitud máxima definida por el sistema.</exception>
        /// <exception cref="System.IO.DirectoryNotFoundException">Excepción que se produce cuando no encuentra parte de un archivo o directorio.</exception>
        /// <exception cref="System.IO.FileNotFoundException">Excepción que se produce cuando se produce un error al intentar tener acceso a un archivo que no existe en el disco.</exception>
        /// <exception cref="System.IO.IOException">Excepción que es lanzada cuando se produce un error de E/S.</exception>
        /// <exception cref="System.NotSupportedException">Excepción que se produce cuando no se admite un método invocado o cuando se intenta leer, buscar o escribir en una secuencia que no admite la funcionalidad invocada.</exception>
        /// <exception cref="System.UnauthorizedAccessException">Excepción que se produce cuando el sistema operativo deniega el acceso a causa de un error de E/S o de un error de seguridad de un tipo concreto.</exception>
        /// <exception cref="System.Security.SecurityException">La excepción que se produce cuando se detecta un error de seguridad.</exception>
        /// <exception cref="System.ArgumentNullException">Excepción que se produce cuando se pasa una referencia nula a un método que no la acepta como argumento válido.</exception>
        /// <exception cref="System.ArgumentException">Excepción que se produce cuando no es válido uno de los argumentos proporcionados para un método.</exception>
        /// <exception cref="System.Exception">Representa los errores que se producen durante la ejecución de una aplicación.</exception>
        /// <returns>Valor guardado en el nodo</returns>
        public static string LeerConfiguración(string nodoPrincipal, string nodoSecundario)
        {
            string dato = "";

            ExisteArchivoConfiguracion(true);
            try
            {
                //Declaramos la ruta del archivo (debería ser global en la clase)
                string ruta = Application.StartupPath + "\\ArchivosConfiguracion\\configuracion.chev";
                //Creamos un objeto del tipo XmlDocument para leer el archivo
                XmlDocument xml = new XmlDocument();
                xml.Load(ruta);
                //Obtenemos el nodo principal (el de <configuraciones>) y a partir de ese sacaremos los datos
                XmlNodeList nodo = xml.GetElementsByTagName("configuraciones");
                //Obtenemos el primer nodo (el recibido del parametro) a partir del nodo principal
                XmlNodeList nodoPrin = ((XmlElement)nodo[0]).GetElementsByTagName(nodoPrincipal);
                //Hacemos una iteración en el primer nodo para buscar dentro de el el nodo que buscamos
                foreach (XmlElement nodoInt in nodoPrin)
                {
                    //Obtenemos el segundo nodo a partir del primer nodo para tener acceso a su información
                    XmlNodeList nodoSec = nodoInt.GetElementsByTagName(nodoSecundario);
                    dato = Criptografia.Descifrar(nodoSec[0].InnerText);
                }
            }
            catch (XmlException ex)
            {
                throw ex;
            }
            catch (PathTooLongException ex)
            {
                throw ex;
            }
            catch (DirectoryNotFoundException ex)
            {
                throw ex;
            }
            catch (FileNotFoundException ex)
            {
                throw ex;
            }
            catch (IOException ex)
            {
                throw ex;
            }
            catch (NotSupportedException ex)
            {
                throw ex;
            }
            catch (UnauthorizedAccessException ex)
            {
                throw ex;
            }
            catch (System.Security.SecurityException ex)
            {
                throw ex;
            }
            catch (ArgumentNullException ex)
            {
                throw ex;
            }
            catch (ArgumentException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(dato);
        }
예제 #2
0
        /// <summary>
        /// Función que guarda determinada configuración
        /// </summary>
        /// <param name="nodoPrincipal">Nombre del nodo que contiene el grupo de configuración</param>
        /// <param name="nodoSecundario">Nombre del nodo tiene determinada configuración</param>
        /// <param name="valor">Valor de la configuración</param>
        /// /// <exception cref="System.Xml.XmlException">Devuelve información detallada sobre la última excepción.</exception>
        /// <exception cref="System.IO.PathTooLongException">Excepción que se produce cuando una ruta de acceso o un nombre de archivo supera la longitud máxima definida por el sistema.</exception>
        /// <exception cref="System.IO.DirectoryNotFoundException">Excepción que se produce cuando no encuentra parte de un archivo o directorio.</exception>
        /// <exception cref="System.IO.FileNotFoundException">Excepción que se produce cuando se produce un error al intentar tener acceso a un archivo que no existe en el disco.</exception>
        /// <exception cref="System.IO.IOException">Excepción que es lanzada cuando se produce un error de E/S.</exception>
        /// <exception cref="System.InvalidOperationException">Excepción que se produce cuando una llamada a un método no es válida para el estado actual del objeto.</exception>
        /// <exception cref="System.NotSupportedException">Excepción que se produce cuando no se admite un método invocado o cuando se intenta leer, buscar o escribir en una secuencia que no admite la funcionalidad invocada.</exception>
        /// <exception cref="System.UnauthorizedAccessException">Excepción que se produce cuando el sistema operativo deniega el acceso a causa de un error de E/S o de un error de seguridad de un tipo concreto.</exception>
        /// <exception cref="System.Security.SecurityException">La excepción que se produce cuando se detecta un error de seguridad.</exception>
        /// <exception cref="System.ArgumentNullException">Excepción que se produce cuando se pasa una referencia nula a un método que no la acepta como argumento válido.</exception>
        /// <exception cref="System.ArgumentException">Excepción que se produce cuando no es válido uno de los argumentos proporcionados para un método.</exception>
        /// <exception cref="System.Exception">Representa los errores que se producen durante la ejecución de una aplicación.</exception>
        public static void GuardarConfiguracion(string nodoPrincipal, string nodoSecundario, string valor)
        {
            string ruta = Application.StartupPath + "\\ArchivosConfiguracion\\configuracion.chev";

            ExisteArchivoConfiguracion(true);
            try
            {
                if (ExisteConfiguracion(nodoPrincipal))
                {
                    if (ExisteConfiguracion(nodoPrincipal, nodoSecundario))
                    {
                        XmlDocument xml = new XmlDocument();
                        xml.Load(ruta);
                        XmlNode nodoPrimario = xml.DocumentElement;
                        foreach (XmlNode nodo1 in nodoPrimario)
                        {
                            if (nodo1.Name == nodoPrincipal)
                            {
                                foreach (XmlNode nodo2 in nodo1)
                                {
                                    if (nodo2.Name == nodoSecundario)
                                    {
                                        nodo2.InnerText = Criptografia.Cifrar(valor);
                                        break;
                                    }
                                }
                                break;
                            }
                        }
                        xml.Save(ruta);
                    }
                    else
                    {
                        XmlDocument xml = new XmlDocument();
                        xml.Load(ruta);
                        XmlNode nodoPrimario = xml.DocumentElement;
                        foreach (XmlNode nodo1 in nodoPrimario)
                        {
                            if (nodo1.Name == nodoPrincipal)
                            {
                                XmlNode nodo2 = xml.CreateNode(XmlNodeType.Element, nodoSecundario, null);
                                nodo2.InnerText = Criptografia.Cifrar(valor);
                                nodo1.AppendChild(nodo2);
                                break;
                            }
                        }
                        xml.Save(ruta);
                    }
                }
                else
                {
                    XmlDocument xml = new XmlDocument();
                    xml.Load(ruta);
                    XmlNode nodoPrimario = xml.DocumentElement;
                    XmlNode nodo1        = xml.CreateNode(XmlNodeType.Element, nodoPrincipal, null);
                    nodoPrimario.AppendChild(nodo1);
                    xml.Save(ruta);
                    GuardarConfiguracion(nodoPrincipal, nodoSecundario, valor);
                }
            }
            catch (XmlException ex)
            {
                throw ex;
            }
            catch (PathTooLongException ex)
            {
                throw ex;
            }
            catch (DirectoryNotFoundException ex)
            {
                throw ex;
            }
            catch (FileNotFoundException ex)
            {
                throw ex;
            }
            catch (IOException ex)
            {
                throw ex;
            }
            catch (InvalidOperationException ex)
            {
                throw ex;
            }
            catch (NotSupportedException ex)
            {
                throw ex;
            }
            catch (UnauthorizedAccessException ex)
            {
                throw ex;
            }
            catch (System.Security.SecurityException ex)
            {
                throw ex;
            }
            catch (ArgumentNullException ex)
            {
                throw ex;
            }
            catch (ArgumentException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }