예제 #1
0
        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];"));
        }
예제 #2
0
        /// <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;
            }
        }