private void sendConsultantNotification() { List <Employee> EmployeeResposibleForEnquiry = new List <Employee>(); List <CurriculumEnquiry> CE; using (var Dbconnection = new MCDEntities()) { CE = (from a in Dbconnection.CurriculumEnquiries //from b in a.Curriculum.LookupDepartment //from c in b.Curriculum.LookupDepartment where a.EnquiryID == CurrentEnquiry.EnquiryID select a) .Include("Curriculum") .Include("Curriculum.LookupDepartment") .ToList <CurriculumEnquiry>(); foreach (int DepID in CE.Select(a => a.Curriculum.DepartmentID).Distinct <int>()) { EmployeeResposibleForEnquiry.Add((from a in Dbconnection.Employees from b in a.LookupDepartments where b.DepartmentID == DepID select a) .Include("Individual") .Include("Individual.ContactDetails") .Include("LookupDepartments") .FirstOrDefault <Employee>()); } }; //Step 1 - Notify the Client //Step 1.1 get list of enquiry associated contacts. List <Individual> ContactWhichInitiatedTheEquiry = (from a in CurrentEnquiry.Individuals select a).ToList <Individual>(); foreach (Employee Empl in EmployeeResposibleForEnquiry.Distinct <Employee>()) { foreach (ContactDetail ConDetail in Empl.Individual.ContactDetails) { if (ConDetail.ContactTypeID == (int)EnumContactTypes.Email_Address) { OutlookEmailMessage newOutlookEmailMessage = new OutlookEmailMessage(); newOutlookEmailMessage.addToAddress(ConDetail.ContactDetailValue); string sConsultantFullName = Empl.Individual.FullName; string ClientMessage = ""; ClientMessage += "<!DOCTYPE HTML>"; ClientMessage += "<html>"; //ClientMessage += "<head>"; //ClientMessage += "<title>Enquiry Response</title>"; //ClientMessage += "</head>"; ClientMessage += "<body >"; ClientMessage = "<span style=\"font-size: 12pt; font-family: Tahoma;\">Good Day " + sConsultantFullName + "<br><br>"; ClientMessage += "<strong>New Equiry</strong>.<br><br>"; ClientMessage += "<p>"; ClientMessage += "Equiry Reference Number:<strong>" + CurrentEnquiry.EnquiryID + "</strong><br><br>"; ClientMessage += "Please refer to the above mentioned reference number to follow up on your enquiry.<br/>"; ClientMessage += "The enquiry was captured by:<strong> " + CurrentEmployeeLoggedIn.Individual.FullName + "</strong>.<br/>"; ClientMessage += "The details of your enquiry that where disccussed:<br><br>"; ClientMessage += "Contact Details:<br></hr>"; ClientMessage += "<table border=\"1\" style=\"font-size: 12pt; font-family: Tahoma;\">"; foreach (Individual individualToEmail in CurrentEnquiry.Individuals.OrderBy(a => a.FullName)) { ClientMessage += "<tr>"; ClientMessage += "<td colspan='2' style=\"padding: 5px;\">Contact Person: <strong>" + individualToEmail.FullName + "</strong></td>"; ClientMessage += "</tr>"; foreach (ContactDetail IndividualContactDetails in individualToEmail.ContactDetails.OrderBy(a => a.ContactTypeID)) { ClientMessage += "<tr>"; ClientMessage += "<td>" + IndividualContactDetails.LookupContactType.ContactType + "</td><td>" + IndividualContactDetails.ContactDetailValue + "</td>"; ClientMessage += "</tr>"; } } ClientMessage += "</table>"; ClientMessage += "<strong>Enquiry Details:</strong><br><br></hr>"; ClientMessage += "<table border=\"1\" style=\"font-size: 12pt; font-family: Tahoma;\">"; ClientMessage += "<tr><td><strong>Department</strong></td><td><strong>Curriculum</strong></td><td><strong>Qantity To Enroll</strong></td></tr>"; foreach (CurriculumEnquiry CurriculumEnquiries in CE.OrderBy(a => a.Curriculum.DepartmentID)) { int iDepartmentID = CurriculumEnquiries.Curriculum.DepartmentID; if ((from a in Empl.LookupDepartments where a.DepartmentID == CurriculumEnquiries.Curriculum.DepartmentID select a).Count <LookupDepartment>() > 0) { ClientMessage += "<tr>"; ClientMessage += "<td>" + CurriculumEnquiries.Curriculum.LookupDepartment.DepartmentName + "</td><td>" + CurriculumEnquiries.Curriculum.CurriculumName + "</td><td>" + CurriculumEnquiries.EnrollmentQuanity + "</td>"; ClientMessage += "</tr>"; } } ClientMessage += "</table><br>"; // ClientMessage += "One Of the Following Consultants will be in contact shortly."; ClientMessage += "</body>"; ClientMessage += "</html>"; newOutlookEmailMessage.MessagePriority = enumMessagePriority.High; newOutlookEmailMessage.Subject = "New Equiry Required Feed back - Ref " + CurrentEnquiry.EnquiryID; newOutlookEmailMessage.MessageBody = ClientMessage; newOutlookEmailMessage.SendMessage(); newOutlookEmailMessage.Dispose(); } } } }