private DataSet getOutboundMessages() { String query = "SELECT * FROM tblSMS WHERE batchID is not null AND billable = 'True' and (status = '1' or status = '0')"; DataSet ds = DataHandler.getData(query, out dataStatus); return(ds); }
public void GetPastelAccounts(String buildingCode) { String buildQ = "SELECT Building, DataPath FROM tblBuildings "; if (!String.IsNullOrEmpty(buildingCode)) { buildQ += "WHERE code = '" + buildingCode + "'"; } buildQ += " ORDER by Building"; String status = String.Empty; DataSet ds = DataHandler.getData(buildQ, out status); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { String buildingName = dr["Building"].ToString(); List <Customer> customers = frmMain.pastel.AddCustomers("", dr["DataPath"].ToString()); foreach (Customer c in customers) { CustomerConstruct cc = new CustomerConstruct(); cc.buildingName = buildingName; cc.acc = c.accNumber; cc.emails = c.Email; String email = ""; foreach (String e in c.Email) { email += e + ";"; } sw.WriteLine(buildingName + "," + c.accNumber + "," + email); } } } }
private Dictionary <String, String[]> GetMessages() { String status; String statementQuery = "SELECT id, subject, errorMessage, status FROM tblStatementRun WHERE (sentDate1 IS NOT NULL) AND (errorMessage LIKE 'Processed%') AND (status IS NULL) ORDER BY id"; String letterQuery = "SELECT id, subject, errorMessage, status FROM tblLetterRun WHERE (sentDate IS NOT NULL) AND (errorMessage LIKE 'Processed%') AND (status IS NULL) ORDER BY id"; DataSet stmtDS = DataHandler.getData(statementQuery, out status); DataSet letterDS = DataHandler.getData(letterQuery, out status); Dictionary <String, String[]> outboundMails = new Dictionary <string, string[]>(); if (stmtDS != null && stmtDS.Tables.Count > 0 && stmtDS.Tables[0].Rows.Count > 0) { foreach (DataRow stmtDR in stmtDS.Tables[0].Rows) { try { String[] details = new string[] { stmtDR["id"].ToString(), "tblStatementRun" }; outboundMails.Add(stmtDR["subject"].ToString(), details); } catch { } } } if (letterDS != null && letterDS.Tables.Count > 0 && letterDS.Tables[0].Rows.Count > 0) { foreach (DataRow letterDR in letterDS.Tables[0].Rows) { try { String[] details = new string[] { letterDR["id"].ToString(), "tblLetterRun" }; outboundMails.Add(letterDR["subject"].ToString(), details); } catch { } } } return(outboundMails); }
private void frmSMS_Load(object sender, EventArgs e) { txtCredits.Text = GetCredits(out status).ToString(); String buildingQuery = "SELECT distinct building FROM tblSMS ORDER BY building"; String customerQuery = "SELECT distinct customer FROM tblSMS ORDER BY customer"; DataSet dsBuildings = DataHandler.getData(buildingQuery, out status); DataSet dsCustomers = DataHandler.getData(customerQuery, out status); cmbBuilding.SelectedIndexChanged -= cmbBuilding_SelectedIndexChanged; cmbBuilding.Items.Clear(); cmbBuilding.Items.Add("All buildings"); if (dsBuildings != null && dsBuildings.Tables.Count > 0 && dsBuildings.Tables[0].Rows.Count > 0) { foreach (DataRow drB in dsBuildings.Tables[0].Rows) { cmbBuilding.Items.Add(drB["building"].ToString()); } } cmbBuilding.SelectedIndex = 0; cmbBuilding.SelectedIndexChanged += cmbBuilding_SelectedIndexChanged; cmbCustomer.Items.Clear(); cmbCustomer.Items.Add("All customers"); if (dsCustomers != null && dsCustomers.Tables.Count > 0 && dsCustomers.Tables[0].Rows.Count > 0) { foreach (DataRow drB in dsCustomers.Tables[0].Rows) { cmbCustomer.Items.Add(drB["customer"].ToString()); } } cmbCustomer.SelectedIndex = 0; dataGridView1.DataSource = bs; }
private void timer2_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (DateTime.Now <= nextCheckDate && DateTime.Now.Hour == 6) { nextCheckDate = DateTime.Now.AddDays(1); DataSet dsUnsent = DataHandler.getData(UnsentEmailQuery, out status); String message = "Unsent Email Report: " + DateTime.Now.ToString() + ".<br/><br/>"; if (dsUnsent != null && dsUnsent.Tables.Count > 0 && dsUnsent.Tables[0].Rows.Count > 0) { message += "Total Count: " + dsUnsent.Tables[0].Rows.Count.ToString() + ".<br/><br/>"; message += "<table>"; message += "<tr><td>Building Code</td><td>Unit No</td><td>Email</td><td>Queue Date</td><td>Subject</td><td>Document Type</td></tr>"; foreach (DataRow dr in dsUnsent.Tables[0].Rows) { message += "<tr><td>" + dr["Building"].ToString() + "</td><td>" + dr["Unit"].ToString() + "</td><td>" + dr["Email"].ToString() + "</td>"; message += "<td>" + dr["Queued"].ToString() + "</td><td>" + dr["Subject"].ToString() + "</td><td>" + dr["Type"].ToString() + "</td></tr>"; } message += "</table>"; } else { message += "No unsent emails."; } String[] sMailAddys = new String[] { "*****@*****.**", "*****@*****.**" }; List <String> addies = new List <string>(); addies.AddRange(sMailAddys); MailSender.SendMail("*****@*****.**", addies, "Unsent Mail Report", message, true, null); } }
private DataSet GetCompletedStatements(DateTime filterDate) { String query = "SELECT id, email1, fileName, debtorEmail, sentDate1, unit, attachment, subject FROM tblStatementRun WHERE (sentDate1 >= '" + filterDate.ToString("yyyy/MM/dd") + "')"; DataSet ds = DataHandler.getData(query, out status); return(ds); }
private DataSet SendOutboundMessages() { String query = "SELECT * FROM tblSMS WHERE status = '-1'"; DataSet ds = DataHandler.getData(query, out dataStatus); return(ds); }
public void GetPastelAccounts(String buildingCode, bool showMe) { String buildQ = "SELECT Building, DataPath FROM tblBuildings "; if (!String.IsNullOrEmpty(buildingCode)) { buildQ += "WHERE code = '" + buildingCode + "'"; } buildQ += " ORDER by Building"; String status = String.Empty; DataSet ds = DataHandler.getData(buildQ, out status); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { String buildingName = dr["Building"].ToString(); List <Customer> customers = frmMain.pastel.AddCustomers("", dr["DataPath"].ToString()); foreach (Customer c in customers) { CustomerConstruct cc = new CustomerConstruct(); cc.buildingName = buildingName; cc.acc = c.accNumber; cc.emails = c.Email; allCustomers.Add(cc); } } } foreach (CustomerConstruct c in allCustomers) { DataConstruct dc = new DataConstruct(); dc.Building = c.buildingName; dc.Account = c.acc; String email = String.Empty; foreach (String e in c.emails) { if (!e.Contains("imp.ad-one")) { email += e + ";"; } } dc.Pastel_Emails = email; if (!dataCustomers.Keys.Contains(c.acc)) { dataCustomers.Add(c.acc, dc); } } if (showMe) { MessageBox.Show(dataCustomers.Count.ToString() + " customers retrieved"); } }
private int GetOutstandingStmts() { try { String query = "SELECT count(id) as osStmt FROM tblStatementRun WHERE sentDate1 is null"; DataSet dsOS = DataHandler.getData(query, out status); return(int.Parse(dsOS.Tables[0].Rows[0]["osStmt"].ToString())); } catch { return(-1); } }
private DataSet GetQueuedLetters(bool immediate) { String query = "SELECT id, fromEmail, toEmail, subject, message, html, addcc, readreceipt, attachment, queueDate, sentDate, unitno, cc, bcc "; query += " FROM tblLetterRun WHERE (sentDate is null)"; if (immediate) { query += " AND (processDate IS NOT NULL AND processDate <= getdate())"; } DataSet ds = DataHandler.getData(query, out status); return(ds); }
private bool GetStmtStatus() { String query = "SELECT stmtRunStatus FROM tblRunConfig"; DataSet ds = DataHandler.getData(query, out status); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { return(bool.Parse(ds.Tables[0].Rows[0]["stmtRunStatus"].ToString())); } else { return(false); } }
public List <String> References() { List <String> refs = new List <String>(); String query = "SELECT DISTINCT reference FROM tblSMS ORDER BY sent desc"; String msg = ""; DataSet ds = DataHandler.getData(query, out msg); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { refs.Add(dr["reference"].ToString()); } } return(refs); }
private List <String> GetSentStatements() { List <String> stmtMsg = new List <string>(); String query = "SELECT unit, sentDate1, errorMessage FROM tblStatementRun WHERE sentDate1 >= '" + currentDate.ToString() + "'"; DataSet ds = DataHandler.getData(query, out status); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { String msg = "Unit " + dr["unit"].ToString() + " " + dr["errorMessage"].ToString() + " - " + dr["sentDate1"].ToString(); stmtMsg.Add(msg); } } currentDate = DateTime.Now; return(stmtMsg); }
private void cmbBuilding_SelectedIndexChanged(object sender, EventArgs e) { if (cmbBuilding.SelectedItem != null) { String building = cmbBuilding.SelectedItem.ToString(); String customerQuery = "SELECT distinct customer FROM tblSMS WHERE building = '" + building + "' ORDER BY customer"; DataSet dsCustomers = DataHandler.getData(customerQuery, out status); cmbCustomer.Items.Clear(); cmbCustomer.Items.Add("All customers"); if (dsCustomers != null && dsCustomers.Tables.Count > 0 && dsCustomers.Tables[0].Rows.Count > 0) { foreach (DataRow drB in dsCustomers.Tables[0].Rows) { cmbCustomer.Items.Add(drB["customer"].ToString()); } } } }
public void GenerateCustomerList() { String buildQ = "SELECT Building, Code, DataPath FROM tblBuildings WHERE isBuilding = 'True'"; String status = String.Empty; DataSet ds = DataHandler.getData(buildQ, out status); List <String> customerEntries = new List <string>(); customerEntries.Add("buildingName,abbr,acc,email"); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { String buildingName = dr["Building"].ToString(); String buildingAbbr = dr["Code"].ToString(); List <Customer> customers = frmMain.pastel.AddCustomers("", dr["DataPath"].ToString()); foreach (Customer c in customers) { String email = ""; foreach (String ce in c.Email) { if (ce.Contains("@") && !ce.Contains("imp.ad-one")) { email += ce.Replace(",", "") + ","; } } String customerEntry = buildingName + "," + buildingAbbr + "," + c.accNumber + (email != "" ? "," + email : ""); if (customerEntry.EndsWith(",")) { customerEntry = customerEntry.Replace(customerEntry, customerEntry.Substring(0, customerEntry.Length - 1)); } customerEntries.Add(customerEntry); } } } StreamWriter sw = new StreamWriter("customerlist.csv"); foreach (String customerEntry in customerEntries) { sw.WriteLine(customerEntry); } sw.Flush(); sw.Close(); RaiseEvent("Customer list complete"); }
public String GetReference(String number1, String number2) { String reference = ""; String query = "SELECT top(1) reference FROM tblSMS WHERE number = @n1 OR number = @n2 ORDER BY sent desc"; Dictionary <String, Object> sqlParms = new Dictionary <string, object>(); sqlParms.Add("@n1", number1); sqlParms.Add("@n2", number2); String msg = ""; DataSet ds = DataHandler.getData(query, sqlParms, out msg); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { reference = dr["reference"].ToString(); } } return(reference); }
private DataSet GetQueuedStatements() { DataSet ds = null; while (ds == null) { try { //first remove duplicates String dateQ = "SELECT min(queueDate) FROM tblStatementRun WHERE sentdate1 is null"; DataSet dateDS = DataHandler.getData(dateQ, out status); try { if (dateDS != null && dateDS.Tables.Count > 0 && dateDS.Tables[0].Rows.Count > 0) { DateTime minQ = DateTime.Parse(dateDS.Tables[0].Rows[0][0].ToString()); String unitQ = "SELECT MAX(id) AS maxid, unit FROM tblStatementRun WHERE (queueDate >= '" + minQ.ToString() + "') GROUP BY unit ORDER BY unit"; DataSet unitDS = DataHandler.getData(unitQ, out status); if (unitDS != null && unitDS.Tables.Count > 0 && unitDS.Tables[0].Rows.Count > 0) { foreach (DataRow drUnit in unitDS.Tables[0].Rows) { String unit = drUnit["unit"].ToString(); String maxid = drUnit["maxid"].ToString(); String delDupesQ = "DELETE FROM tblStatementRun WHERE unit = '" + unit + "' AND id <> = " + maxid + " AND queueDate >= '" + minQ.ToString() + "'"; } } } } catch { } String query = "SELECT id, email1, fileName, debtorEmail, sentDate1, unit, attachment, subject FROM tblStatementRun WHERE (sentDate1 is null)"; ds = DataHandler.getData(query, out status); } catch (InsufficientMemoryException e) { Thread.Sleep(1000); } } return(ds); }
private void SaveMail(ref EmailConstruct m) { String msg = ""; //first get all references String checkNumber = m.SentFrom; if (m.SentFrom.StartsWith("27")) { checkNumber = m.SentFrom.Replace("27", "0"); } String refQuery = "SELECT distinct building, customer FROM tblSMS where reference = @reference OR number = @actNumber OR number = @checkNumber"; Dictionary <String, Object> sqlParms = new Dictionary <string, object>(); sqlParms.Add("@building", ""); sqlParms.Add("@customer", ""); sqlParms.Add("@message", m.Body); if (String.IsNullOrEmpty(m.Reference)) { m.Reference = GetReference(checkNumber, m.SentFrom); } sqlParms.Add("@reference", m.Reference); sqlParms.Add("@sent", m.ReceivedDate); sqlParms.Add("@direction", true); sqlParms.Add("@sender", m.SentFrom); sqlParms.Add("@actNumber", m.SentFrom); sqlParms.Add("@checkNumber", checkNumber); DataSet ds = DataHandler.getData(refQuery, sqlParms, out msg); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { sqlParms["@building"] = ds.Tables[0].Rows[0]["building"].ToString(); sqlParms["@customer"] = ds.Tables[0].Rows[0]["customer"].ToString(); sqlParms["@reference"] = m.Reference; sqlParms["@message"] = m.Body; String insertQuery = "INSERT INTO tblSMS(building, customer, number, message, reference, sent, sender)"; insertQuery += " VALUES(@building, @customer, @sender, @message, @reference, @sent, @sender)"; DataHandler.setData(insertQuery, sqlParms, out msg); } }
public String[] GetBuildingStuff(String code) { //building.Period, "CENTRE14", building.Path, 5, building.Journal, building.BC, c.accNumber, building.Contra, building.Contra, docType, docType, amt.ToString("#0.00"), trustAcc, "", out pastelString); String query = String.Format("SELECT period, datapath, journals, bc, contra FROM tblBuildings WHERE code = '{0}'", code); DataSet ds = DataHandler.getData(query, out dataStatus); String[] stuff = new string[5]; if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count == 1) { stuff[0] = ds.Tables[0].Rows[0]["period"].ToString(); stuff[1] = ds.Tables[0].Rows[0]["datapath"].ToString(); stuff[2] = ds.Tables[0].Rows[0]["journals"].ToString(); stuff[3] = ds.Tables[0].Rows[0]["bc"].ToString(); stuff[4] = ds.Tables[0].Rows[0]["contra"].ToString(); } else { for (int i = 0; i < 5; i++) { stuff[i] = string.Empty; } } return(stuff); }
public void SendBulkMails(bool flagQueued = false, bool queued = false) { String mailQuery = "SELECT msg.id, msg.fromAddress, b.Code, b.DataPath, msg.incBCC, msg.bccAddy, msg.subject, msg.message, msg.billBuilding, msg.billAmount FROM tblMsg AS msg "; mailQuery += " INNER JOIN tblBuildings AS b ON msg.buildingID = b.id WHERE (msg.id IN (SELECT DISTINCT msgID FROM tblMsgRecipients WHERE(sentDate IS NULL))) "; if (flagQueued) { mailQuery += " AND msg.queue = '" + queued + "'"; } DataHandler dh = new DataHandler(); String status = String.Empty; DataSet ds = DataHandler.getData(mailQuery, out status); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { int msgID = int.Parse(dr["id"].ToString()); String bCode = dr["Code"].ToString(); String dataPath = dr["DataPath"].ToString(); bool incBCC = bool.Parse(dr["incBCC"].ToString()); String fromAddress = dr["fromAddress"].ToString(); String bccAddy = dr["bccAddy"].ToString(); String subject = dr["subject"].ToString(); String message = dr["message"].ToString(); bool billBuilding = bool.Parse(dr["billBuilding"].ToString()); double billAmount = double.Parse(dr["billAmount"].ToString()); String attachmentQuery = "SELECT Name, Data FROM tblMsgData WHERE msgID = " + msgID.ToString(); DataSet dsAttachment = DataHandler.getData(attachmentQuery, out status); Dictionary <String, byte[]> attachments = new Dictionary <string, byte[]>(); if (dsAttachment != null && dsAttachment.Tables.Count > 0 && dsAttachment.Tables[0].Rows.Count > 0) { foreach (DataRow drA in dsAttachment.Tables[0].Rows) { try { if (!attachments.ContainsKey(drA["Name"].ToString())) { attachments.Add(drA["Name"].ToString(), (byte[])drA["Data"]); } } catch { } } } String billableCustomersQuery = "SELECT distinct accNo FROM tblMsgRecipients WHERE billCustomer = 'True' and msgID = " + msgID.ToString(); String allRecipientsQuery = "SELECT id, accNo, recipient FROM tblMsgRecipients WHERE sentDate is null AND msgID = " + msgID.ToString(); DataSet billableCustomers = DataHandler.getData(billableCustomersQuery, out status); DataSet receivers = DataHandler.getData(allRecipientsQuery, out status); Dictionary <String, bool> emails = new Dictionary <string, bool>(); if (receivers != null && receivers.Tables.Count > 0 && receivers.Tables[0].Rows.Count > 0) { foreach (DataRow rrece in receivers.Tables[0].Rows) { try { String id = rrece["id"].ToString(); String[] emailAddys = rrece["recipient"].ToString().Split(new String[] { ";" }, StringSplitOptions.RemoveEmptyEntries); bool success = MailSender.SendMail(fromAddress, emailAddys, subject, message, false, false, false, out status, attachments); String updQuery = "UPDATE tblMsgRecipients SET sentDate = '" + DateTime.Now.ToString() + "' WHERE id = " + id; RaiseEvent(String.Join(";", emailAddys) + " - " + status); DataHandler.setData(updQuery, out status); if (status != "") { RaiseEvent(updQuery + " - " + status); } try { emails.Add(rrece["accNo"].ToString(), success); } catch { } } catch { } } String bulkUpdateQuery = "UPDATE tblMsgRecipients SET sentDate = '" + DateTime.Now.ToString() + "' WHERE msgID = " + msgID.ToString(); DataHandler.setData(bulkUpdateQuery, out status); if (status != "") { RaiseEvent(bulkUpdateQuery + " - " + status); } } String updateQuery = "UPDATE tblMsg SET queue = 'False' WHERE id = " + msgID.ToString(); DataHandler.setData(updateQuery, out status); message += Environment.NewLine + Environment.NewLine; message += "Send status:" + Environment.NewLine + Environment.NewLine; var builder = new System.Text.StringBuilder(); builder.Append(message); foreach (KeyValuePair <String, bool> statuses in emails) { builder.Append(statuses.Key + " = " + statuses.Value.ToString() + Environment.NewLine); } message = builder.ToString(); if (incBCC) { MailSender.SendMail(fromAddress, new String[] { bccAddy }, subject, message, false, false, false, out status, attachments); } } } }
private void btnRetrieve_Click(object sender, EventArgs e) { String building = String.Empty; String customer = String.Empty; if (cmbBuilding.SelectedItem != null) { building = cmbBuilding.SelectedItem.ToString(); } if (cmbCustomer.SelectedItem != null) { customer = cmbCustomer.SelectedItem.ToString(); } DateTime sDate = sDatePicker.Value; DateTime eDate = eDatePicker.Value; DateTime startDate = new DateTime(sDate.Year, sDate.Month, sDate.Day, 0, 0, 0); DateTime endDate = new DateTime(eDate.Year, eDate.Month, eDate.Day, 23, 59, 59); String query = "SELECT s.building, s.customer, s.number, s.reference, s.message, s.sent, u.username, s.status FROM tblSMS AS s LEFT OUTER JOIN"; query += " tblUsers AS u ON s.sender = u.id WHERE sent >= '" + startDate.ToString() + "' AND sent <= '" + endDate.ToString() + "'"; if (!String.IsNullOrEmpty(building) && building == "All buildings") { if (!String.IsNullOrEmpty(customer) && customer == "All customers") { } else if (!String.IsNullOrEmpty(customer)) { query += " AND s.customer = '" + customer + "'"; } } else if (!String.IsNullOrEmpty(building) && !String.IsNullOrEmpty(customer) && customer == "All customers") { query += " AND s.building = '" + building + "'"; } else if (!String.IsNullOrEmpty(building) && !String.IsNullOrEmpty(customer)) { query += " AND s.building = '" + building + "' AND s.customer = '" + customer + "'"; } query += " ORDER BY s.sent"; //MessageBox.Show(query); DataSet results = DataHandler.getData(query, out status); if (results != null && results.Tables.Count > 0 && results.Tables[0].Rows.Count > 0) { foreach (DataRow dr in results.Tables[0].Rows) { DataRecords drec = new DataRecords(); drec.Building = dr["building"].ToString(); drec.Customer = dr["customer"].ToString(); drec.Cell = dr["number"].ToString(); drec.Reference = dr["reference"].ToString(); drec.Message = dr["message"].ToString(); drec.Sent = DateTime.Parse(dr["sent"].ToString()); drec.Sender = dr["username"].ToString(); drec.Status = dr["status"].ToString(); bs.Add(drec); } } else { MessageBox.Show("No results"); } }
private void GetMail() { timer.Enabled = false; popMessages = FetchAllMessages(hostName, port, useSSL, username, password); mailMessages = new List <MailMessage>(); if (popMessages.Count > 0) { if (messages == null) { messages = new Dictionary <string, EmailConstruct>(); } foreach (Message m in popMessages) { try { if (!messages.ContainsKey(m.Headers.MessageId)) { if (NewMessageEvent != null) { NewMessageEvent(this, new MessageArgs("Event Fired: MailPopped")); } EmailConstruct e = new EmailConstruct(); e.ID = m.Headers.MessageId; MailMessage mm = m.ToMailMessage(); String body = mm.Body; e.SentFrom = mm.From.Address.Replace("@2way.co.za", ""); if (NewMessageEvent != null) { NewMessageEvent(this, new MessageArgs(e.SentFrom)); } if (mm.To.Count > 0) { e.SentTo = mm.To.ToList()[0].Address; } e.ReceivedDate = m.Headers.DateSent; e.Subject = mm.Subject; messages.Add(e.ID, new EmailConstruct()); if (e.Subject == "SMS to email") { #region SMS Emails List <String> refs = References(); foreach (String reference in refs) { if (e.Body.Contains(reference)) { e.Reference = reference; e.Body = e.Body.Replace(reference, ""); break; } } if (NewMessageEvent != null) { NewMessageEvent(this, new MessageArgs("2")); } e.ForwardDate = new DateTime(1900, 1, 1); e.ForwardedTo = ""; e.HandledDate = new DateTime(1900, 1, 1); e.Handled = false; if (NewMessageEvent != null) { NewMessageEvent(this, new MessageArgs("Before Save")); } SaveMail(ref e); if (NewMessageEvent != null) { NewMessageEvent(this, new MessageArgs("After save")); } String buildingQuery = "SELECT distinct u.username, u.email, sms.customer FROM tblSMS AS sms INNER JOIN tblBuildings AS b ON sms.building = b.Code INNER JOIN"; buildingQuery += " tblUserBuildings AS ub ON b.id = ub.buildingid INNER JOIN tblUsers AS u ON ub.userid = u.id"; buildingQuery += " WHERE (sms.sender = '" + e.SentFrom + "')"; String dsStatus = ""; DataSet dsUsers = DataHandler.getData(buildingQuery, out dsStatus); if (dsUsers != null && dsUsers.Tables.Count > 0 && dsUsers.Tables[0].Rows.Count > 0) { String msgfrom = "Astrodon Debtors System"; String subject = "New Message From - " + dsUsers.Tables[0].Rows[0]["customer"].ToString(); String message = "A new sms message has been received from the above customer. Please check the Debtor System for more information."; List <String> toMails = new List <string>(); foreach (DataRow dr in dsUsers.Tables[0].Rows) { String toMail = dr["email"].ToString(); if (!String.IsNullOrEmpty(toMail)) { toMails.Add(toMail); } } if (MailSender.SendMail(msgfrom, toMails, subject, message, false, null)) { String sentMsg = String.Format("Message sent to {0}", String.Join(";", toMails.ToArray())); if (NewMessageEvent != null) { NewMessageEvent(this, new MessageArgs(sentMsg + " " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"))); } } } #endregion SMS Emails } } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } } for (int i = messages.Count; i > 0; i--) { DeleteMessageOnServer(hostName, port, useSSL, username, password, i); } } timer.Enabled = true; }