static void emailWaring(string _id, string _subject, DateTime _start, DateTime _end, string _channels, string _pillar, ConnectorException connectorException, ConnectionException connectionException, NoResponseReceivedException noResponseException) { string emailBody = string.Empty; if (connectorException != null) { emailBody = "Γεια σας κ. Administrator.<br /><br />" + "Σας ενημερώνουμε ότι η εργασία " + _id + " με την ημερομηνία έναρξης " + _start.ToString("d/M/yyyy H:mm tt") + " και την ημερομηνία λήξης " + _end.ToString("d/M/yyyy H:mm tt") + " "; if (_subject.IndexOf("LIGHTS ON") > -1) { emailBody += "δεν άναψε"; } if (_subject.IndexOf("LIGHTS OFF") > -1) { emailBody += "δεν έσβησε"; } if (_channels == "0") { emailBody += " όλες τις ηλεκτρολογικές αναχωρήσεις"; } else { emailBody += " τις ηλεκτρολογικές αναχωρήσεις " + _channels; } emailBody += " του πυλώνα " + getPillarName(_pillar); switch (connectorException.ErrorReason) { case ConnectorException.Reason.DeviceNotFound: emailBody += " επειδή <span style=\"color:red;\">Η συσκευή KNX δεν μπορεί να βρεθεί</span>.<br/><br/>"; break; case ConnectorException.Reason.DeviceNotRespond: emailBody += " επειδή <span style=\"color:red;\">Η συσκευή KNX δεν ανταποκρίνεται στο αναμενόμενο χρόνο</span>.<br/><br/>"; break; case ConnectorException.Reason.NoMoreConnections: emailBody += " επειδή : <span style=\"color:red;\">Η συσκευή KNX δεν μπορεί να δεχτεί τη νέα σύνδεση, διότι το ανώτατο οριο των ταυτόχρονων συνδέσεων έχει υπερβεί ήδη</span>.<br/><br/>"; break; default: emailBody += " επειδή <span style=\"color:red;\">" + connectorException.ErrorReason + "</span>.<br/>"; break; } emailBody += "Με εκτίμηση,<br/>Σύστημα Διαχείρισης Ηλεκτροφωτισμού"; } if (connectionException != null) { emailBody = "Γεια σας κ. Administrator.<br /><br />" + "Σας ενημερώνουμε ότι η εργασία " + _id + " με την ημερομηνία έναρξης " + _start.ToString("d/M/yyyy H:mm tt") + " και την ημερομηνία λήξης " + _end.ToString("d/M/yyyy H:mm tt") + " "; if (_subject.IndexOf("LIGHTS ON") > -1) { emailBody += "δεν άναψε"; } if (_subject.IndexOf("LIGHTS OFF") > -1) { emailBody += "δεν έσβησε"; } if (_channels == "0") { emailBody += " όλες τις ηλεκτρολογικές αναχωρήσεις"; } else { emailBody += " τις ηλεκτρολογικές αναχωρήσεις " + _channels; } emailBody += " του πυλώνα " + getPillarName(_pillar); switch (connectionException.ErrorReason) { case ConnectionException.Reason.NotConnected: emailBody += " επειδή <span style=\"color:red;\">Η σύνδεση δεν εγκαθιδρύθηκε</span>.<br/><br/>"; break; case ConnectionException.Reason.NoMoreConnections: emailBody += " επειδή <span style=\"color:red;\">Η συσκευή δεν μπορεί να δεχθεί τη νέα σύνδεση, διότι το ανώτατο ποσό των ταυτόχρονων συνδέσεων χρησιμοποιείται ήδη.</span>.<br/><br/>"; break; case ConnectionException.Reason.ConnectionRefused: emailBody += " επειδή <span style=\"color:red;\">Η σύνδεση αρνήθηκε από τη συσκευή προορισμού</span>.<br/><br/>"; break; default: emailBody += " επειδή <span style=\"color:red;\">" + connectionException.ErrorReason + "</span>.<br/>"; break; } emailBody += "Με εκτίμηση,<br/>Σύστημα Διαχείρισης Ηλεκτροφωτισμού"; } if (noResponseException != null) { emailBody = "Γεια σας κ. Administrator.<br /><br />" + "Σας ενημερώνουμε ότι η εργασία " + _id + " με την ημερομηνία έναρξης " + _start.ToString("d/M/yyyy H:mm tt") + " και την ημερομηνία λήξης " + _end.ToString("d/M/yyyy H:mm tt") + " "; if (_subject.IndexOf("LIGHTS ON") > -1) { emailBody += "δεν άναψε"; } if (_subject.IndexOf("LIGHTS OFF") > -1) { emailBody += "δεν έσβησε"; } if (_channels == "0") { emailBody += " όλες τις ηλεκτρολογικές αναχωρήσεις"; } else { emailBody += " τις ηλεκτρολογικές αναχωρήσεις " + _channels; } emailBody += " του πυλώνα " + getPillarName(_pillar); switch (noResponseException.ErrorReason) { case NoResponseReceivedException.Reason.Confirmation: emailBody += " επειδή <span style=\"color:red;\">Δεν λήφθηκε επιβεβαίωση για το τηλεγράφημα</span>.<br/><br/>"; break; case NoResponseReceivedException.Reason.NegativeConfirmation: emailBody += " επειδή <span style=\"color:red;\">Λήφθηκε μια αρνητική επιβεβαίωση για το τηλεγράφημα</span>.<br/><br/>"; break; case NoResponseReceivedException.Reason.Indication: emailBody += " επειδή <span style=\"color:red;\">Καμία ένδειξη για το τηλεγράφημα</span>.<br/><br/>"; break; default: emailBody += " επειδή <span style=\"color:red;\">" + noResponseException.ErrorReason + "</span>.<br/>"; break; } emailBody += "Με εκτίμηση,<br/>Σύστημα Διαχείρισης Ηλεκτροφωτισμού"; } if(connectorException == null && connectionException == null && noResponseException == null) { emailBody = "Γεια σας κ. Administrator.<br /><br />" + "Σας ενημερώνουμε ότι η εργασία " + _id + " με την ημερομηνία έναρξης " + _start.ToString("d/M/yyyy H:mm tt") + " και την ημερομηνία λήξης " + _end.ToString("d/M/yyyy H:mm tt")+" "; if (_subject.IndexOf("LIGHTS ON") > -1) { emailBody += "άναψε"; } if (_subject.IndexOf("LIGHTS OFF") > -1) { emailBody += "έσβησε"; } if (_channels == "0") { emailBody += " όλες τις ηλεκτρολογικές αναχωρήσεις"; } else { emailBody += " τις ηλεκτρολογικές αναχωρήσεις " + _channels; } emailBody += " του πυλώνα "+getPillarName(_pillar) + ".<br/><br/>"; emailBody += "Με εκτίμηση,<br/>Σύστημα Διαχείρισης Ηλεκτροφωτισμού"; } // Send email report to system administrator try { SmtpClient ob = new SmtpClient("smtp.office365.com"); ob.UseDefaultCredentials = false; ob.EnableSsl = true; ob.Credentials = new NetworkCredential("*****@*****.**", "83Ruid1987!"); MailMessage obMsg = new MailMessage(); obMsg.From = new MailAddress("*****@*****.**", "Σύστημα Διαχείρισης Ηλεκτροφωτισμού (Do not reply)"); obMsg.To.Add(new MailAddress("*****@*****.**", "Διαχειριστής συστήματος διαχείρισης ηλεκτροφωτισμού")); obMsg.Subject = "Ενημέρωση για την εργασία "+_id+"."; obMsg.IsBodyHtml = true; obMsg.Body = emailBody; ob.Send(obMsg); } catch (Exception ex) { string msg = ex.ToString(); } // Send email report to system administrator }
static void updateReportScheduler3(string taskID, NoResponseReceivedException.Reason errorReason) { using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)) { conn.Open(); string sqlInsert = "INSERT INTO [db_knx].[dbo].[ReportScheduler] ([TaskID],[ErrorID],[ErrorException]) VALUES " + " (" + taskID + ",N'" + errorReason + "',N'NoResponseReceivedException')"; using (SqlCommand sqlComm = new SqlCommand(sqlInsert, conn)) { sqlComm.ExecuteNonQuery(); } conn.Close(); } }