private ReviewIncidentPageTable GetIncidentData(string strNearMissID) { ReviewIncidentPageTable incident = new ReviewIncidentPageTable(); SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConn"].ToString()); conn.Open(); string qry = "SELECT DNMR.ID, DNMR.OperatorName, RD.Department, RNMT.NearMissType, DNMR.NearMiss_Solution, DNMR.NearMiss_ActionTaken FROM Data.NearMissRecord AS DNMR JOIN Reference.Department AS RD ON DNMR.Department_ID = RD.ID JOIN Reference.NearMissType AS RNMT ON DNMR.NearMissType_ID = RNMT.ID WHERE DNMR.ID = @id"; using (SqlCommand cmd = new SqlCommand(qry, conn)) { var fNameParam = new SqlParameter("@id", System.Data.SqlDbType.Int); fNameParam.Value = int.Parse(strNearMissID); cmd.Parameters.Add(fNameParam); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); incident.OperatorName = sdr["OperatorName"].ToString(); incident.Department = sdr["Department"].ToString(); incident.NearMissType = sdr["NearMissType"].ToString(); incident.NearMiss_Solution = sdr["NearMiss_Solution"].ToString(); incident.NearMiss_ActionTaken = sdr["NearMiss_ActionTaken"].ToString(); cmd.Dispose(); conn.Close(); } return(incident); }
private void SendAssigneeEmail(string strNearMissID, string strAssigneeName, string strSeverity, string strRisk, string strComments) { string strEmail = GetEmailFromName(strAssigneeName); ReviewIncidentPageTable incident = GetIncidentData(strNearMissID); SmtpSection section = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp"); MailMessage mailMessage = new MailMessage(); mailMessage.From = new MailAddress(section.Network.UserName); mailMessage.To.Add(new MailAddress(strEmail)); string templatePath = HttpRuntime.AppDomainAppPath + "/emailAssigneeNotificationTemplate.html"; StreamReader sr = new StreamReader(templatePath); string strEmailBody = sr.ReadToEnd(); sr.Close(); // Replace the template placeholder variables strEmailBody = strEmailBody.Replace("[actionURL]", ConfigurationManager.AppSettings["mainURL"] + "updateIncident?NearMissID=" + strNearMissID); strEmailBody = strEmailBody.Replace("[mainURL]", ConfigurationManager.AppSettings["mainURL"]); string strFirstName = strAssigneeName.Substring(strAssigneeName.LastIndexOf(',') + 2); strEmailBody = strEmailBody.Replace("[strUsername]", strFirstName); strEmailBody = strEmailBody.Replace("[NearMissID]", strNearMissID); strEmailBody = strEmailBody.Replace("[OperatorName]", incident.OperatorName); strEmailBody = strEmailBody.Replace("[Department]", incident.Department); strEmailBody = strEmailBody.Replace("[NearMissType]", incident.NearMissType); strEmailBody = strEmailBody.Replace("[Severity]", strSeverity); strEmailBody = strEmailBody.Replace("[Risk]", strRisk); strEmailBody = strEmailBody.Replace("[NearMissDetails]", incident.NearMiss_Solution); strEmailBody = strEmailBody.Replace("[NearMissActionTaken]", incident.NearMiss_ActionTaken); strEmailBody = strEmailBody.Replace("[EHSComments]", strComments); mailMessage.IsBodyHtml = true; mailMessage.Body = strEmailBody; mailMessage.Subject = "Near Miss Incident Requiring Review"; SmtpClient smtpClient = new SmtpClient(); smtpClient.Send(mailMessage); }