/// <summary>
    /// Servicio que permite AGREGAR la tabla GNB_CONVERSIONES con elementos dentro de un String de tipo XML
    /// </summary>
    /// <param name="mC">Cadena de caracteres de tipo XML</param>
    public void AgregarConversiones(string mC)
    {
        ServicioConversiones pServicioProductos = new ServicioConversiones();                             //servicio que permite comunicar con BD

        XmlSerializer          pSerializador = new XmlSerializer(typeof(ConversionesCollection));         //objeto que recibira los elementos serializados
        StringReader           lector        = new StringReader(mC);                                      //se crea un lector el cual recibira los datos des-serializados
        ConversionesCollection pConversiones = (ConversionesCollection)pSerializador.Deserialize(lector); //se castea el des-serializador y se obtienen los elementos

        //PROVEEDOR DE SIGNO DECIMAL
        NumberFormatInfo proveedorDecimal = new NumberFormatInfo();

        proveedorDecimal.NumberDecimalSeparator = ".";

        for (int indice = 0; indice < pConversiones.Count; indice++)
        {
            GNB_CONVERSIONES pDatos      = new GNB_CONVERSIONES(); //se instancea la tabla que contiene los campos a modificar
            Conversiones     pConversion = pConversiones.ElementAt(indice);

            //ALMACENAMIENTO DE VARIABLES DESERIALIZADAS
            pDatos.ID_CONVERSION = indice + 1;
            pDatos.FROM_CURRENCY = pConversion.From_Currency;
            pDatos.TO_CURRENCY   = pConversion.To_Currency;
            pDatos.RATE          = Convert.ToDecimal(pConversion.Rate, proveedorDecimal);

            //se agregan los productos al servicio
            pServicioProductos.AgregarConversiones(pDatos);
        }
    }
    /// <summary>
    /// se OBTIENEN o RECUPERAN todos los elementos dentro de la tabla GNB_CONVERSIONES
    /// </summary>
    /// <returns>candena de caracteres XML que contienen los elementos dentro de la tabla</returns>
    public string ObtenerConversiones()
    {
        ServicioConversiones    pServicioConversiones   = new ServicioConversiones();                  //se crea una instancia del servicio
        List <GNB_CONVERSIONES> pConversiones           = pServicioConversiones.ObtenerConversiones(); //se crea una lista que almacena los elementos dentro de la tabla
        ConversionesCollection  pConversionesCollection = new ConversionesCollection();                //se crea una instancia del la lista donde deberan estar los elementos de la base de datos

        //PROVEEDOR DE SIGNO DECIMAL
        NumberFormatInfo proveedorDecimal = new NumberFormatInfo();

        proveedorDecimal.NumberDecimalSeparator = ".";

        //se realiza un ciclo donde cada elemento se traspasara desde la base de datos hasta el objeto que lo contendra
        //este objeto es la instancia de tipo "collection"
        foreach (GNB_CONVERSIONES indice in pConversiones)
        {
            Conversiones iComun = new Conversiones();
            iComun.Id_Conversion = indice.ID_CONVERSION;
            iComun.From_Currency = indice.FROM_CURRENCY;
            iComun.To_Currency   = indice.TO_CURRENCY;
            iComun.Rate          = Convert.ToDouble(indice.RATE, proveedorDecimal);
            pConversionesCollection.Add(iComun);
        }


        XmlSerializer pSerializador = new XmlSerializer(typeof(ConversionesCollection)); //se crea un serializador de tipo colection (lista)
        StringWriter  escritor      = new StringWriter();                                //se instancia un nuevo escritor de cadenas

        pSerializador.Serialize(escritor, pConversionesCollection);                      //se serializa la cadena
        return(escritor.ToString());                                                     //se retorna el escritor de tipo string
    }
    /// <summary>
    /// Consulta a un LINK de HEROKU por los parametros de FROM, TO y RATE
    /// para luego crear una cadena de datos para trabajar con ella
    /// </summary>
    /// <param name="xmlLink">debe ser el link de heroku de las transacciones</param>
    /// <returns>Cadena de caracteres con el contenido del documento XML serializado</returns>
    public string ConsultaXMLConver(string xmlLink)
    {
        XmlDocument DocumentoXml = new XmlDocument();                                  //variable para almacenar un link y abrirlo como XML

        DocumentoXml.Load(xmlLink);                                                    //carga el archivo XML
        XmlElement  ElementoRaiz = DocumentoXml.DocumentElement;                       //elemento raiz principal
        XmlNodeList Nodos        = ElementoRaiz.ChildNodes;                            //hijos de ese raiz

        NumberFormatInfo proveedorDecimal = new NumberFormatInfo();                    //tipo de decimal

        proveedorDecimal.NumberDecimalSeparator = ".";                                 //se asigna el punto como separador decimal

        ConversionesCollection pConversionesCollection = new ConversionesCollection(); //es donde se almacenaran las conversiones encontradas en el XML

        //ciclo para recorrer los nodos dentro de la consulta XML
        for (int pNodos = 0; pNodos < Nodos.Count; pNodos++)
        {
            Conversiones pConversion = new Conversiones();

            XmlNode      NodoActual = Nodos.Item(pNodos);
            XmlElement   Dato       = (XmlElement)NodoActual;
            XmlAttribute Atributo1  = Dato.GetAttributeNode("from");
            XmlAttribute Atributo2  = Dato.GetAttributeNode("to");
            XmlAttribute Atributo3  = Dato.GetAttributeNode("rate");

            pConversion.Id_Conversion = pNodos + 1;
            pConversion.From_Currency = Atributo1.InnerText.ToString();
            pConversion.To_Currency   = Atributo2.InnerText.ToString();
            pConversion.Rate          = Convert.ToDouble(Atributo3.InnerText.ToString(), proveedorDecimal);

            pConversionesCollection.Add(pConversion);
        }


        //segmento para seriralizar los resultados y entregar una cadena de caracteres
        XmlSerializer pSerializador = new XmlSerializer(typeof(ConversionesCollection));
        StringWriter  escritor      = new StringWriter();

        pSerializador.Serialize(escritor, pConversionesCollection);
        return(escritor.ToString());
    }