public static string buildOpenPayUDocument(object config, string startElement = "OrderCreateRequest", int request = 1, string xml_version = "1.0", string xml_encoding = "UTF-8") { if (config.GetType().ToString() != "System.Collections.Hashtable") { return(null); } StringWriter sw = new StringWriter(); XmlTextWriter writer = new XmlTextWriter(sw); writer.WriteStartElement(startElement); Hashtable data1 = config as Hashtable; OpenPayU.arr2xml(writer, data1); writer.WriteEndElement(); writer.Flush(); StringBuilder sb = new StringBuilder(); string xmlString = sb.AppendFormat(PayuLib.PayuInternals.xmlStringFormat, sw.ToString()).ToString(); string xmlStringOLD = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<OpenPayU xmlns=\"http://www.openpayu.com/openpayu.xsd\">" + sw.ToString() + "</OpenPayU>"; writer.Close(); sw.Close(); return(xmlString); }
private static void arr2xml(XmlWriter xml, Hashtable data) { string substr = ""; int status = 0; if (data != null && data.GetType().ToString() == "System.Collections.Hashtable") { foreach (DictionaryEntry item in data) { if (item.Value.GetType().ToString() == "System.Collections.Hashtable") { xml.WriteStartElement(item.Key.ToString()); Hashtable v2 = item.Value as Hashtable; OpenPayU.arr2xml(xml, v2); xml.WriteEndElement(); status = 0; continue; } else { status = 0; substr = item.Value.GetType().ToString(); if (substr.Length > 30) { substr = item.Value.GetType().ToString().Substring(0, 32); } if (substr == "System.Collections.Generic.Stack") { xml.WriteStartElement(item.Key.ToString()); status = 1; Stack <Hashtable> v3 = item.Value as Stack <Hashtable>; foreach (Hashtable item2 in v3) { Hashtable v4 = item2 as Hashtable; OpenPayU.arr2xml(xml, v4); } xml.WriteEndElement(); continue; } } if (status == 0) { xml.WriteElementString(item.Key.ToString(), item.Value.ToString()); } status = 0; } } }