Please feel free to copy this code and use it as you please.
using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.Net; using System.IO; using System.Net.Mail; using System.Diagnostics; using System.Web; namespace Freedom { namespace SendSMS { // Class SMSProcess, Used within windows service to send SMS messages from database to AQL // Developed by Garry Pritchard @ Freedom Finance, March 2009 // Note:= Needs the Assebley reference System.Web adding to the project and the // using System.web, for the HttpUtility.UrlEncode public class SMSProcess { private string _SMS_ID = ""; private string _SMS_MSG = ""; private string _SMS_MOBILE = ""; private string _DBConnection = global::SendSMS.SMSProcess.Default.DBConnecttion; private string _SMSUser = global::SendSMS.SMSProcess.Default.SMSUser; private string _SMSPwd = global::SendSMS.SMSProcess.Default.SMSPwd; private string _EMailSvr = global::SendSMS.SMSProcess.Default.EmailServer; public void ProcessSMS() { SqlCommand sqlCmd = null; SqlConnection sqlCon = null; SqlDataReader sqlRead = null; // Check to see if we have any new records to process: try { sqlCon = new SqlConnection(this._DBConnection); sqlCon.Open(); sqlCmd = new SqlCommand("SMS_GET_RECORDS", sqlCon); sqlCmd.CommandType = System.Data.CommandType.StoredProcedure; sqlRead = sqlCmd.ExecuteReader(); while (sqlRead.Read()) { this._SMS_ID = sqlRead["TxtID"].ToString(); this._SMS_MSG = sqlRead["TxtMsg"].ToString(); this._SMS_MOBILE = sqlRead["Mobile"].ToString(); SendMessage(); } sqlRead.Close(); } catch (Exception e) { LogError("Error in ProcessSMS with message := " + e.Message + " " + e.InnerException); } finally { sqlCon.Close(); sqlCmd.Dispose(); } } private void UpdateRecord(string sAQLMSG) { try { // Update the record within the db with the response from AQL SqlConnection sqlCon = new SqlConnection(this._DBConnection); sqlCon.Open(); SqlCommand sqlCmd = new SqlCommand("SMS_UPDATE_RECORD", sqlCon); sqlCmd.CommandType = System.Data.CommandType.StoredProcedure; SqlParameter pID = new SqlParameter(); pID.ParameterName = "@ID"; pID.Value = Convert.ToInt32(this._SMS_ID); pID.DbType = System.Data.DbType.Int32; sqlCmd.Parameters.Add(pID); SqlParameter pCode = new SqlParameter(); SqlParameter pMsg = new SqlParameter(); switch (sAQLMSG) { case "AQSMS-NOAUTHDETAILS": pCode.ParameterName = "@ProcessCode"; pCode.Value = "E"; pCode.DbType = System.Data.DbType.String; sqlCmd.Parameters.Add(pCode); pMsg.ParameterName = "@Msg"; pMsg.Value = "AQSMS-NOAUTHDETAILS"; pMsg.DbType = System.Data.DbType.String; sqlCmd.Parameters.Add(pMsg); break; case "AQSMS-AUTHERROR": pCode.ParameterName = "@ProcessCode"; pCode.Value = "E"; pCode.DbType = System.Data.DbType.String; sqlCmd.Parameters.Add(pCode); pMsg.ParameterName = "@Msg"; pMsg.Value = "AQSMS-NOAUTHDETAILS"; pMsg.DbType = System.Data.DbType.String; sqlCmd.Parameters.Add(pMsg); break; case "AQSMS-NOCREDIT": pCode.ParameterName = "@ProcessCode"; pCode.Value = "E"; pCode.DbType = System.Data.DbType.String; sqlCmd.Parameters.Add(pCode); pMsg.ParameterName = "@Msg"; pMsg.Value = "AQSMS-NOCREDIT"; pMsg.DbType = System.Data.DbType.String; sqlCmd.Parameters.Add(pMsg); break; case "AQSMS-OK": pCode.ParameterName = "@ProcessCode"; pCode.Value = "Y"; pCode.DbType = System.Data.DbType.String; sqlCmd.Parameters.Add(pCode); pMsg.ParameterName = "@Msg"; pMsg.Value = "AQSMS-OK"; pMsg.DbType = System.Data.DbType.String; sqlCmd.Parameters.Add(pMsg); break; case "AQSMS-NOMSG": pCode.ParameterName = "@ProcessCode"; pCode.Value = "Y"; pCode.DbType = System.Data.DbType.String; sqlCmd.Parameters.Add(pCode); pMsg.ParameterName = "@Msg"; pMsg.Value = "AQSMS-NOMSG"; pMsg.DbType = System.Data.DbType.String; sqlCmd.Parameters.Add(pMsg); break; case "AQSMS-CREDIT": pCode.ParameterName = "@ProcessCode"; pCode.Value = "Y"; pCode.DbType = System.Data.DbType.String; sqlCmd.Parameters.Add(pCode); pMsg.ParameterName = "@Msg"; pMsg.Value = "AQSMS-CREDIT"; pMsg.DbType = System.Data.DbType.String; sqlCmd.Parameters.Add(pMsg); break; } sqlCmd.ExecuteNonQuery(); sqlCmd.Dispose(); sqlCon.Close(); } catch (Exception e) { LogError("Error in UpdateRecord with message := " + e.Message + " " + e.InnerException); } } private void SendMessage() { try { string sMsg = this._SMS_MSG; sMsg = System.Web.HttpUtility.UrlEncode(sMsg); // send the message to aql: HttpWebRequest req = (HttpWebRequest)WebRequest.Create ("http://gw1.aql.com/sms/postmsg.php?to_num=" + this._SMS_MOBILE +"&message=" + sMsg + "&flash=0&originator=MYCOMPANY&username=" +this._SMSUser + "&password=" + this._SMSPwd); req.Method = "POST"; req.KeepAlive = false; req.ContentType = "application/x-www-form-urlencoded"; // Get the request stream. // Get the response. WebResponse response = req.GetResponse(); // Get the stream containing content returned by the server. Stream dataStream = response.GetResponseStream(); // Open the stream using a StreamReader for easy access. StreamReader reader = new StreamReader(dataStream); // Read the content. string responseFromServer = reader.ReadToEnd(); UpdateRecord(responseFromServer.ToUpper()); // Clean up the streams. reader.Close(); dataStream.Close(); response.Close(); } catch (Exception e) { LogError("Error in SendMessage with message := " + e.Message + " " + e.InnerException); } } private void LogError(string sMessage) { // TODO SEND & LOG Error Msg System.Net.Mail.MailMessage oMail = new System.Net.Mail.MailMessage(); oMail.To.Add(new MailAddress("support@mycompany.com")); oMail.From = new MailAddress("myemail@mycompany.com"); oMail.Subject = "SendSMS App Error:"; oMail.Body = sMessage; SmtpClient oSMTP = new SmtpClient(); oSMTP.Host = this._EMailSvr; oSMTP.Send(oMail); EventLog.WriteEntry("Send SMS Error", sMessage); } } } }
As a growing company, aql have a strong desire to achieve our long term expansion plan and In...
The United Kingdom Network Operators’ Forum (UKNOF) relies completely on sponsors and volunteers...
aql sponsored businessman turned adventurer, Geoff Major, as part of his charity challenge of a...
The annual Janet Networkshop event took place this week between 3rd and 5th April 2012,...
Dr Adam Beaumont will be representing aql at RIPE (64) NCC meeting to be held in Ljubljana,...