Ejemplo n.º 1
0
        private static void RunTaskOnNewTopic(object oTask)
        {
            if (oTask == null)
            {
                return;
            }
            EmailMessageTask task = oTask as EmailMessageTask;

            log.Info("deserialized EmailMessageTask task");

            // give a little time to make sure the taskqueue was updated after spawning the topic
            Thread.Sleep(100); // 0.10 seconds

            task.RunTask();

            log.Info("started EmailMessageTask task");
        }
Ejemplo n.º 2
0
        public static void SendRejectionNotification(
            SmtpSettings smtpSettings,
            SiteSettings siteSettings,
            SiteUser rejectingUser,
            ContentWorkflow rejectedWorkflow,
            string rejectionReason
            )
        {
            EmailMessageTask messageTask = new EmailMessageTask(smtpSettings);

            messageTask.SiteGuid     = siteSettings.SiteGuid;
            messageTask.EmailFrom    = siteSettings.DefaultEmailFromAddress;
            messageTask.EmailReplyTo = rejectingUser.Email;
            messageTask.EmailTo      = rejectedWorkflow.RecentActionByUserEmail;

            CultureInfo defaultCulture = SiteUtils.GetDefaultCulture();

            messageTask.Subject = ResourceHelper.GetMessageTemplate(defaultCulture, "ApprovalRequestRejectionNotificationSubject.config").Replace("{SiteName}", siteSettings.SiteName);

            StringBuilder message = new StringBuilder();

            message.Append(ResourceHelper.GetMessageTemplate(defaultCulture, "ApprovalRequestRejectionNotification.config"));
            message.Replace("{ModuleTitle}", rejectedWorkflow.ModuleTitle);
            message.Replace("{ApprovalRequestedDate}", rejectedWorkflow.RecentActionOn.ToShortDateString());
            message.Replace("{RejectionReason}", rejectionReason);
            message.Replace("{RejectedBy}", rejectingUser.Name);

            if (!Email.IsValidEmailAddressSyntax(rejectedWorkflow.RecentActionByUserEmail))
            {
                //invalid address log it
                log.Error("Failed to send workflow rejection message, invalid recipient email "
                          + rejectedWorkflow.RecentActionByUserEmail
                          + " message was " + message.ToString());

                return;
            }

            messageTask.TextBody = message.ToString();
            messageTask.QueueTask();

            WebTaskManager.StartOrResumeTasks();
        }
Ejemplo n.º 3
0
        public override void UserRegisteredHandler(object sender, UserRegisteredEventArgs e)
        {
            //if (sender == null) return;
            if (e == null)
            {
                return;
            }
            if (e.SiteUser == null)
            {
                return;
            }

            if (!WebConfigSettings.NotifyAdminsOnNewUserRegistration)
            {
                return;
            }

            log.Debug("NotifyAdminUserRegisteredHandler called for new user " + e.SiteUser.Email);

            if (HttpContext.Current == null)
            {
                return;
            }

            //lookup admin users and send notification email with link to manage user

            SiteSettings siteSettings   = CacheHelper.GetCurrentSiteSettings();
            CultureInfo  defaultCulture = ResourceHelper.GetDefaultCulture();

            //Role adminRole = Role.GetRoleByName(siteSettings.SiteId, "Admins");

            //if (adminRole == null)
            //{
            //    // TODO: log it?
            //    return;
            //}

            //DataTable admins = SiteUser.GetRoleMembers(adminRole.RoleId);

            string subjectTemplate
                = ResourceHelper.GetMessageTemplate(defaultCulture,
                                                    "NotifyAdminofNewUserRegistationSubject.config");

            string textBodyTemplate = ResourceHelper.GetMessageTemplate(defaultCulture,
                                                                        "NotifyAdminofNewUserRegistationMessage.config");

            string       siteRoot     = SiteUtils.GetNavigationSiteRoot();
            SmtpSettings smtpSettings = SiteUtils.GetSmtpSettings();

            List <string> adminEmails = SiteUser.GetEmailAddresses(siteSettings.SiteId, "Admins;");

            //foreach (DataRow row in admins.Rows)
            foreach (string email in adminEmails)
            {
                if (WebConfigSettings.EmailAddressesToExcludeFromAdminNotifications.IndexOf(email, StringComparison.InvariantCultureIgnoreCase) > -1)
                {
                    continue;
                }

                EmailMessageTask messageTask = new EmailMessageTask(smtpSettings);

                messageTask.EmailFrom = siteSettings.DefaultEmailFromAddress;
                //messageTask.EmailTo = row["Email"].ToString();
                messageTask.EmailTo = email;

                messageTask.Subject = string.Format(
                    defaultCulture,
                    subjectTemplate,
                    e.SiteUser.Email,
                    siteRoot
                    );


                string manageUserLink = siteRoot + "/Admin/ManageUsers.aspx?userid="
                                        + e.SiteUser.UserId.ToString(CultureInfo.InvariantCulture);

                messageTask.TextBody = string.Format(
                    defaultCulture,
                    textBodyTemplate,
                    siteSettings.SiteName,
                    siteRoot,
                    manageUserLink
                    );

                messageTask.SiteGuid = siteSettings.SiteGuid;
                messageTask.QueueTask();
            }

            WebTaskManager.StartOrResumeTasks();
        }
Ejemplo n.º 4
0
        public static void SendApprovalRequestNotification(
            SmtpSettings smtpSettings,
            SiteSettings siteSettings,
            SiteUser submittingUser,
            ContentWorkflow draftWorkflow,
            string approvalRoles,
            string contentUrl
            )
        {
            if (string.IsNullOrEmpty(approvalRoles))
            {
                approvalRoles = "Admins;Content Administrators;Content Publishers;";
            }

            List <string> emailAddresses = SiteUser.GetEmailAddresses(siteSettings.SiteId, approvalRoles);

            int queuedMessageCount = 0;

            CultureInfo defaultCulture  = SiteUtils.GetDefaultCulture();
            string      messageTemplate = ResourceHelper.GetMessageTemplate(defaultCulture, "ApprovalRequestNotification.config");
            string      messageSubject  = ResourceHelper.GetMessageTemplate(defaultCulture, "ApprovalRequestNotificationSubject.config").Replace("{SiteName}", siteSettings.SiteName);

            foreach (string email in emailAddresses)
            {
                if (WebConfigSettings.EmailAddressesToExcludeFromAdminNotifications.IndexOf(email, StringComparison.InvariantCultureIgnoreCase) > -1)
                {
                    continue;
                }

                if (!Email.IsValidEmailAddressSyntax(email))
                {
                    continue;
                }

                EmailMessageTask messageTask = new EmailMessageTask(smtpSettings);
                messageTask.SiteGuid     = siteSettings.SiteGuid;
                messageTask.EmailFrom    = siteSettings.DefaultEmailFromAddress;
                messageTask.EmailReplyTo = submittingUser.Email;
                messageTask.EmailTo      = email;

                messageTask.Subject = messageSubject;

                StringBuilder message = new StringBuilder();
                message.Append(messageTemplate);
                message.Replace("{ModuleTitle}", draftWorkflow.ModuleTitle);
                message.Replace("{ApprovalRequestedDate}", draftWorkflow.RecentActionOn.ToShortDateString());
                message.Replace("{SubmittedBy}", submittingUser.Name);
                message.Replace("{ContentUrl}", contentUrl);

                if (!Email.IsValidEmailAddressSyntax(draftWorkflow.RecentActionByUserEmail))
                {
                    //invalid address log it
                    log.Error("Failed to send workflow rejection message, invalid recipient email "
                              + draftWorkflow.RecentActionByUserEmail
                              + " message was " + message.ToString());

                    return;
                }

                messageTask.TextBody = message.ToString();
                messageTask.QueueTask();
                queuedMessageCount += 1;
            }

            if (queuedMessageCount > 0)
            {
                WebTaskManager.StartOrResumeTasks();
            }
        }