/InterfazGrafico/LibreriaClases/Propiedades/PTransformarDatos.cs
http://vdata.codeplex.com · C# · 335 lines · 257 code · 25 blank · 53 comment · 3 complexity · 6da6c2018d501b53d425d7f811880149 MD5 · raw file
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Xml;
- using InterfazGrafico.LibreriaClases.Clases;
- using InterfazGrafico.LibreriaConstantes;
- using InterfazGrafico.LibreriaConstantes.Elementos;
-
- namespace InterfazGrafico.LibreriaClases.Propiedades
- {
- /// <summary>
- /// Almacena las propiedades de un elemento específico.
- /// </summary>
- public class PTransformarDatos : Propiedades
- {
- /// <summary>
- /// Entrada de datos.
- /// </summary>
- public string Entrada
- {
- get
- {
- return this.getPropiedadString(CTransformarDatos.Entrada);
- }
- set
- {
- this.setOrAddPropiedad(CTransformarDatos.Entrada, value);
- }
- }
-
- /// <summary>
- /// Salida de datos.
- /// </summary>
- public string Salida
- {
- get
- {
- return this.getPropiedadString(CTransformarDatos.Salida);
- }
- set
- {
- this.setOrAddPropiedad(CTransformarDatos.Salida, value);
- }
- }
-
- /// <summary>
- /// Estructura de entrada.
- /// </summary>
- public string EstructuraEntrada
- {
- get
- {
- return this.getPropiedadString(CTransformarDatos.EstructuraEntrada);
- }
- set
- {
- this.setOrAddPropiedad(CTransformarDatos.EstructuraEntrada, value);
- }
- }
-
- /// <summary>
- /// Estructura de salida.
- /// </summary>
- public string EstructuraSalida
- {
- get
- {
- return this.getPropiedadString(CTransformarDatos.EstructuraSalida);
- }
- set
- {
- this.setOrAddPropiedad(CTransformarDatos.EstructuraSalida, value);
- }
- }
-
- /// <summary>
- /// Lista de funciones.
- /// </summary>
- public List<string> ListaFunciones
- {
- get
- {
- return this.getPropiedadListaString(CTransformarDatos.Funciones);
- }
- set
- {
- this.setOrAddPropiedad(CTransformarDatos.Funciones, value);
- }
- }
-
- /// <summary>
- /// Lista de campos origen a los que aplica las funciones.
- /// </summary>
- public List<string> ListaCamposOrigen
- {
- get
- {
- return this.getPropiedadListaString(CTransformarDatos.CamposOrigen);
- }
- set
- {
- this.setOrAddPropiedad(CTransformarDatos.CamposOrigen, value);
- }
- }
-
- /// <summary>
- /// Lista de campos destino a los que aplica las funciones.
- /// </summary>
- public List<string> ListaCamposDestino
- {
- get
- {
- return this.getPropiedadListaString(CTransformarDatos.CamposDestino);
- }
- set
- {
- this.setOrAddPropiedad(CTransformarDatos.CamposDestino, value);
- }
- }
-
- /// <summary>
- /// Lista de parámetros de las funciones.
- /// </summary>
- public List<List<string>> ListaParametros
- {
- get
- {
- return this.getPropiedadListaListaString(CTransformarDatos.Parametros);
- }
- set
- {
- this.setOrAddPropiedad(CTransformarDatos.Parametros, value);
- }
- }
-
- /// <summary>
- /// Campo en el que incluir secuencia numérica.
- /// </summary>
- public string CampoSecuencia
- {
- get
- {
- return this.getPropiedadString(CTransformarDatos.CampoSecuencia);
- }
- set
- {
- this.setOrAddPropiedad(CTransformarDatos.CampoSecuencia, value);
- }
- }
-
- /// <summary>
- /// Campo en el que incluir la fecha actual.
- /// </summary>
- public string CampoActual
- {
- get
- {
- return this.getPropiedadString(CTransformarDatos.CampoFecha);
- }
- set
- {
- this.setOrAddPropiedad(CTransformarDatos.CampoFecha, value);
- }
- }
-
- /// <summary>
- /// Constructor por defecto.
- /// </summary>
- public PTransformarDatos()
- : base()
- {
- }
-
- /// <summary>
- /// Obtiene los parámetros a partir del fichero XML indicado.
- /// </summary>
- /// <param name="fichero">Fichero de configuración XML</param>
- override public void leer(string fichero)
- {
- try
- {
- base.leer(fichero);
- XmlDocument xml = LeerXml.AbrirFicheroParametros(fichero);
-
- try
- { this.Entrada = LeerXml.ObtenerValorCampo(xml, CTransformarDatos.RutaEntrada); }
- catch (Exception)
- { this.Entrada = string.Empty; };
-
- try
- { this.Salida = LeerXml.ObtenerValorCampo(xml, CTransformarDatos.RutaSalida); }
- catch (Exception)
- { this.Salida = string.Empty; }
-
- try
- { this.EstructuraEntrada = LeerXml.ObtenerValorCampo(xml, CTransformarDatos.RutaEstructuraEntrada); }
- catch (Exception)
- { this.EstructuraEntrada = string.Empty; }
-
- try
- { this.EstructuraSalida = LeerXml.ObtenerValorCampo(xml, CTransformarDatos.RutaEstructuraSalida); }
- catch (Exception)
- { this.EstructuraSalida = string.Empty; }
-
- // Funciones
- try
- {
- int numeroFunciones = LeerXml.ObtenerNumeroNodosCampo(xml, CTransformarDatos.RutaFunciones);
- for (int indiceFuncion = 0; indiceFuncion < numeroFunciones; indiceFuncion++)
- {
- string funcion = string.Empty;
- try
- { funcion = LeerXml.ObtenerValorCampo(xml, CTransformarDatos.RutaFunciones, indiceFuncion, Constantes.NodoXMLActual + CTransformarDatos.NodoFuncionesFuncionFuncion); }
- catch (Exception)
- { continue; }
- if (!string.Empty.Equals(funcion))
- {
- this.ListaFunciones.Add(funcion);
-
- // Campo origen
- string campoOrigen = string.Empty;
- try
- { campoOrigen = LeerXml.ObtenerValorCampo(xml, CTransformarDatos.RutaFunciones, indiceFuncion, Constantes.NodoXMLActual + CTransformarDatos.NodoFuncionesFuncionOrigen); }
- catch (Exception)
- { campoOrigen = string.Empty; }
- this.ListaCamposOrigen.Add(campoOrigen);
-
- // Campo destino
- string campoDestino = string.Empty;
- try
- { campoDestino = LeerXml.ObtenerValorCampo(xml, CTransformarDatos.RutaFunciones, indiceFuncion, Constantes.NodoXMLActual + CTransformarDatos.NodoFuncionesFuncionDestino); }
- catch (Exception)
- { campoDestino = string.Empty; }
- this.ListaCamposDestino.Add(campoDestino);
-
- // Parametros
- List<string> parametros = new List<string>();
- try
- {
- int numeroParametros = LeerXml.ObtenerNumeroNodosCampo(xml, CTransformarDatos.RutaFunciones, indiceFuncion, Constantes.NodoXMLActual + CTransformarDatos.NodoFuncionesFuncionParametros);
- for (int indiceParametro = 0; indiceParametro < numeroParametros; indiceParametro++)
- {
- string parametro = string.Empty;
- try
- { parametro = LeerXml.ObtenerValorCampo(xml, CTransformarDatos.RutaFunciones, indiceFuncion, Constantes.NodoXMLActual + CTransformarDatos.NodoFuncionesFuncionParametros, indiceParametro); }
- catch (Exception)
- { parametro = string.Empty; }
- parametros.Add(parametro);
- }
- }
- catch (Exception)
- {
- parametros = new List<string>();
- }
- this.ListaParametros.Add(parametros);
- }
- }
- }
- catch (Exception)
- {
- this.ListaFunciones = new List<string>();
- this.ListaCamposOrigen = new List<string>();
- this.ListaCamposDestino = new List<string>();
- this.ListaParametros = new List<List<string>>();
- }
-
- // Campo secuencia
- try
- { this.CampoSecuencia = LeerXml.ObtenerValorCampo(xml, CTransformarDatos.RutaSecuencia); }
- catch (Exception)
- { this.CampoSecuencia = string.Empty; }
-
- // Campo fecha actual
- try
- { this.CampoActual = LeerXml.ObtenerValorCampo(xml, CTransformarDatos.RutaFechaActual); }
- catch (Exception)
- { this.CampoActual = string.Empty; }
- }
- catch (Exception ex)
- {
- throw new ApplicationException(Constantes.ERROR_LECTURA_FICHERO_CONFIGURACION, ex);
- }
- }
-
- /// <summary>
- /// Escribe los parámetros al fichero XML indicado.
- /// </summary>
- /// <param name="fichero">Fichero de configuración XML</param>
- public override void escribir(string fichero)
- {
- try
- {
- base.escribir(fichero);
- XmlWriter xml = EscribirXml.AbrirFicheroParametros(fichero);
- EscribirXml.InicioElemento(xml, CTransformarDatos.NodoRaiz);
- EscribirXml.EscribeNodo(xml, CTransformarDatos.NodoEntrada, Entrada);
- EscribirXml.EscribeNodo(xml, CTransformarDatos.NodoSalida, Salida);
- EscribirXml.EscribeNodo(xml, CTransformarDatos.NodoEstructuraSalida, EstructuraSalida);
- EscribirXml.EscribeNodo(xml, CTransformarDatos.NodoEstructuraEntrada, EstructuraEntrada);
- EscribirXml.InicioElemento(xml, CTransformarDatos.NodoConfiguracion);
- // Funciones
- EscribirXml.InicioElemento(xml, CTransformarDatos.NodoFunciones);
- int i = 0;
- foreach (string funcion in ListaFunciones)
- {
- EscribirXml.InicioElemento(xml, CTransformarDatos.NodoFuncionesFuncion);
- EscribirXml.EscribeNodo(xml, CTransformarDatos.NodoFuncionesFuncionFuncion, funcion);
- EscribirXml.EscribeNodo(xml, CTransformarDatos.NodoFuncionesFuncionOrigen, ListaCamposOrigen[i]);
- EscribirXml.EscribeNodo(xml, CTransformarDatos.NodoFuncionesFuncionDestino, ListaCamposDestino[i]);
- EscribirXml.InicioElemento(xml, CTransformarDatos.NodoFuncionesFuncionParametros);
- foreach (string paramero in ListaParametros[i])
- EscribirXml.EscribeNodo(xml, CTransformarDatos.NodoFuncionesFuncionParametrosParametro, paramero);
- EscribirXml.FinElemento(xml);
- EscribirXml.FinElemento(xml);
- i++;
- }
- EscribirXml.FinElemento(xml);
-
- // Campo secuencia
- EscribirXml.EscribeNodo(xml, CTransformarDatos.NodoSecuencia, CampoSecuencia);
- // Campo fecha actual
- EscribirXml.EscribeNodo(xml, CTransformarDatos.NodoFechaActual, CampoActual);
- EscribirXml.FinElemento(xml);
- EscribirXml.FinElemento(xml);
- EscribirXml.Flush(xml);
- EscribirXml.Close(xml);
- }
- catch (Exception ex)
- {
- throw new ApplicationException(Constantes.ERROR_ESCRITURA_FICHERO_CONFIGURACION, ex);
- }
- }
- }
- }