Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
                    }
                }
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
 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);
     }
 }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        private DataSet SendOutboundMessages()
        {
            String  query = "SELECT * FROM tblSMS WHERE status = '-1'";
            DataSet ds    = DataHandler.getData(query, out dataStatus);

            return(ds);
        }
Esempio n. 8
0
        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");
            }
        }
Esempio n. 9
0
 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);
     }
 }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
            }
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
 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());
             }
         }
     }
 }
Esempio n. 15
0
        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");
        }
Esempio n. 16
0
        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);
        }
Esempio n. 17
0
        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);
        }
Esempio n. 18
0
        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);
            }
        }
Esempio n. 19
0
        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);
        }
Esempio n. 20
0
        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);
                    }
                }
            }
        }
Esempio n. 21
0
        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");
            }
        }
Esempio n. 22
0
        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;
        }