public void Return_formatted_string_on_call_to_base_email_to_string() { var emailMessage = new ApprovalStateChangedEmail { To = new List <string> { "*****@*****.**", "*****@*****.**", "*****@*****.**" }, Subject = "Data Collection Approved" }; Assert.That(emailMessage.ToString(), Is.EqualTo("Subject: Data Collection Approved; Recipients: [email protected], [email protected], [email protected];")); }
/// <summary> /// Handles the ApprovalStateChanged message. /// </summary> /// <param name="message">ApprovalStateChanged message.</param> public void Handle(NotifyApprovalStateChanged message) { var emailData = _approvalStateChangedRepository.Get(message.DataCollectionId); switch (message.ApprovalState) { case "Submitted": var submittedStateEmail = new ApprovalStateChangedEmail { To = new List <string> { _qaApprovalGroupEmail }, Subject = EmailTemplateSubject.ApprovalStateChangedSubmittedSubject, ProjectTitle = emailData.ProjectTitle, DataCollectionTitle = emailData.DataCollectionTitle, DataCollectionOwner = emailData.Manager, ApproverId = message.Approver, ApproverName = GetApproverName(message.Approver) }; Log.InfoFormat("[URDMS] Sending Approval State Changed email. {0}.", submittedStateEmail); _mailer.SendEmail(submittedStateEmail, "ApprovalStateChangedSubmitted"); break; case "QaApproved": var qaApprovedStateEmail = new ApprovalStateChangedEmail { To = new List <string> { _secondaryApprovalGroupEmail }, Subject = EmailTemplateSubject.ApprovalStateChangedQaApprovedSubject, ProjectTitle = emailData.ProjectTitle, DataCollectionTitle = emailData.DataCollectionTitle, DataCollectionOwner = emailData.Manager, ApproverId = message.Approver, ApproverName = GetApproverName(message.Approver) }; Log.InfoFormat("[URDMS] Sending Approval State Changed email. {0}.", qaApprovedStateEmail); _mailer.SendEmail(qaApprovedStateEmail, "ApprovalStateChangedQaApproved"); break; case "SecondaryApproved": var secondaryApprovedStateEmail = new ApprovalStateChangedEmail { To = new List <string> { _qaApprovalGroupEmail }, Subject = EmailTemplateSubject.ApprovalStateChangedSecondaryApprovedSubject, ProjectTitle = emailData.ProjectTitle, DataCollectionTitle = emailData.DataCollectionTitle, DataCollectionOwner = emailData.Manager, ApproverId = message.Approver, ApproverName = GetApproverName(message.Approver) }; Log.InfoFormat("[URDMS] Sending Approval State Changed email. {0}.", secondaryApprovedStateEmail); _mailer.SendEmail(secondaryApprovedStateEmail, "ApprovalStateChangedSecondaryApproved"); break; case "RecordAmended": var recordAmendedStateEmail = new ApprovalStateChangedEmail { To = new List <string> { _secondaryApprovalGroupEmail }, Subject = EmailTemplateSubject.ApprovalStateChangedRecordAmendedSubject, ProjectTitle = emailData.ProjectTitle, DataCollectionTitle = emailData.DataCollectionTitle, DataCollectionOwner = emailData.Manager, ApproverId = message.Approver, ApproverName = GetApproverName(message.Approver) }; Log.InfoFormat("[URDMS] Sending Approval State Changed email. {0}.", recordAmendedStateEmail); _mailer.SendEmail(recordAmendedStateEmail, "ApprovalStateChangedRecordAmended"); break; case "Published": var managerEmailAddress = _userService.GetUser(emailData.ManagerId).EmailAddress; var publishedStateEmail = new ApprovalStateChangedEmail { To = new List <string> { managerEmailAddress }, Subject = EmailTemplateSubject.ApprovalStateChangedPublishedSubject, ProjectTitle = emailData.ProjectTitle, DataCollectionTitle = emailData.DataCollectionTitle }; Log.InfoFormat("[URDMS] Sending Approval State Changed email. {0}.", publishedStateEmail); _mailer.SendEmail(publishedStateEmail, "ApprovalStateChangedPublished"); break; } }