/// <summary>
/// Create the XML needed to submit SendSMS request in order to send a textual content to a subscriber
/// We used here the StringBuilder object instead of XML DOM in order to get better performance
/// </summary>
/// <param name="TimeStamp">request time and date in a DDMMYYYYHHMMSS format </param>
/// <param name="SubsIdType">may be MSISDN or XID or IP</param>
/// <param name="SubsID">value must be according to SubsIdType</param>
/// <param name="ServiceCode">a unique identifier for the service request</param>
/// <param name="originator">the originator of the message(can be numeric or alphanumeric)</param>
/// <param name="SmsText">the textual content to be sent</param>
/// <returns>Request XML</returns>
private string MakeSendSmsXml(string TimeStamp, string SubsIdType, string SubsID, string ServiceCode, string originator, string SmsText)
{
StringBuilder sb = new StringBuilder();
sb.Append("<MSG>");
sb.Append("<HEADER>");
sb.Append("<ACTION>Request</ACTION>");
sb.Append("<ACTION_TYPE>Send</ACTION_TYPE>");
sb.AppendFormat("<MSG_ID>{0}</MSG_ID>", Guid.NewGuid().ToString("N"));
sb.AppendFormat("<TRANSACTION_TS>{0}</TRANSACTION_TS>", TimeStamp);
sb.Append("</HEADER>");
sb.Append("<BODY>");
sb.Append("<REQUEST_TYPE>Messaging</REQUEST_TYPE>");
sb.Append("<REQUEST_METHOD>SendSMS</REQUEST_METHOD>");
sb.AppendFormat("<SUBS_ID_TYPE>{0}</SUBS_ID_TYPE>", SubsIdType);
sb.AppendFormat("<SUBSCRIBER_ID>{0}</SUBSCRIBER_ID>", SubsID);
sb.AppendFormat("<SERVICE_CODE>{0}</SERVICE_CODE>", ServiceCode);
sb.Append("<REQUEST_PARAMS>");
sb.AppendFormat("<ORIGINATOR>{0}</ORIGINATOR>", originator);
sb.AppendFormat("<TEXT><![CDATA[{0}]]></TEXT>", SmsText);
sb.Append("</REQUEST_PARAMS>");
sb.Append("</BODY>");
sb.Append("</MSG>");
return sb.ToString();
}