Show MessageHandler.cs syntax highlighted
using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
using System.Xml.Xsl;
using System.Xml;
using System.Xml.XPath;
using System.Net;
namespace DemoClientApp
{
class MessageHandler
{
private String xslDirectory = Directory.GetCurrentDirectory() + "\\xsl\\";
public String getLocalHostName()
{
return "http://" + Dns.GetHostName();
}
public XmlDocument sendMessage(XmlDocument msg, String address)
{
XmlDocument response;
response = SendReceiveMessage(msg, address);
return response;
}
public XmlDocument transformMessage(XmlDocument msg, String transformFileName)
{
XsltArgumentList arg = new XsltArgumentList();
return transformMessage(msg, transformFileName, arg);
}
public XmlDocument transformMessage(XmlDocument msg, String transformFileName, XsltArgumentList arg)
{
//XslTransform transformer;
XslCompiledTransform transformer = new XslCompiledTransform(false);
XsltSettings settings = new XsltSettings(true, true);
XmlDocument message = new XmlDocument();
MemoryStream ms = new MemoryStream();
StreamWriter sw = new StreamWriter(ms);
StringBuilder sbuilder = new StringBuilder();
TextWriter writer = new StringWriter(sbuilder);
try
{
transformer.Load(transformFileName, settings, new XmlUrlResolver());
DateTime d = DateTime.Now;
arg.RemoveParam("now", "");
arg.AddParam("now", "", d.ToString("yyyyMMddHHmmss"));
arg.RemoveParam("OID", "");
arg.AddParam("OID", "", Guid.NewGuid().ToString());
arg.RemoveParam("xslDir", "");
arg.AddParam("xslDir", "", xslDirectory);
// Execute the transform.
transformer.Transform(msg, arg, sw);
ms.Seek(0, SeekOrigin.Begin);
message.Load(ms);
}
catch
{
throw;
}
finally
{
if (transformer != null)
transformer.TemporaryFiles.Delete();
transformer = null;
settings = null;
sw = null;
ms = null;
}
return (message);
}
private XmlDocument SendReceiveMessage(XmlDocument TxMsg, String ServerAddr)
{
HttpWebRequest req = null;
HttpWebResponse rsp = null;
XmlDocument RxMsg = new XmlDocument();
try
{
req = (HttpWebRequest)WebRequest.Create(ServerAddr);
req.Method = "POST"; // Post method
req.ContentType = "text/xml"; // content type
req.Timeout = 200000;
req.KeepAlive = false;
// Wrap the request stream with a text-based writer
StreamWriter writer = new StreamWriter(req.GetRequestStream());
// Write the xml text into the stream
TxMsg.Save(writer);
writer.Close();
// Send the data to the webserver
rsp = (HttpWebResponse)req.GetResponse();
RxMsg.Load(rsp.GetResponseStream());
}
catch
{
throw;
}
finally
{
if (rsp != null)
{
rsp.GetResponseStream().Close();
rsp.Close();
rsp = null;
}
if (req != null)
{
req.GetRequestStream().Close();
req.Abort();
req = null;
}
}
return RxMsg;
}
}
}
See more files for this project here