/// <summary> /// Called when a scheduled job executes /// </summary> /// <returns>A status message to be stored in the database log and visible from admin mode</returns> public override string Execute() { OnStatusChanged(String.Format("Sending scheduled emails...")); List <EventPageBase> allEventPages = AttendScheduledEmailEngine.GetEventPageBases(); List <ScheduledEmailBlock> emailsToSend = AttendScheduledEmailEngine.GetScheduledEmailsToSend(allEventPages); int numberOfMailsSent = 0; int numberOfMailsToSend = emailsToSend.Count; foreach (ScheduledEmailBlock scheduledEmailBlock in emailsToSend) { List <IParticipant> participantsToSendEmailTo = AttendScheduledEmailEngine.GetParticipantsForScheduledEmail(scheduledEmailBlock); foreach (IParticipant participant in participantsToSendEmailTo) { AttendScheduledEmailEngine.SendScheduledEmail(scheduledEmailBlock, participant); numberOfMailsSent++; OnStatusChanged(String.Format("Sent " + numberOfMailsSent + " messages.")); if (_stopSignaled) { return("Stop of job was called"); } } AttendScheduledEmailEngine.MarkAsSent(scheduledEmailBlock); } return("Job completed. Sent " + numberOfMailsSent + " messages through " + numberOfMailsToSend + " templates."); }
protected void CreateNew_Click(object sender, EventArgs e) { ScheduledEmailBlock emailBlock = AttendScheduledEmailEngine.GenerateScheduledEmailBlock(CurrentEventPageBase.ContentLink); this.Page.ClientScript.RegisterStartupScript(this.GetType(), "scriptid", "window.parent.location.href='" + EPiServer.Editor.PageEditing.GetEditUrl((emailBlock as IContent).ContentLink) + "'", true); }
public bool SendStatusMail(IParticipant participant) { AttendStatus status = AttendStatus.Undefined; EventPageBase CurrentEvent = EPiServer.DataFactory.Instance.Get <EventPageBase>(participant.EventPage); Enum.TryParse <AttendStatus>(participant.AttendStatus, out status); foreach (ScheduledEmailBlock scheduledEmailBlock in AttendScheduledEmailEngine.GetScheduledEmails(CurrentEvent.ContentLink, SendOptions.Action, status)) { AttendScheduledEmailEngine.SendScheduledEmail(scheduledEmailBlock, participant); } return(true); }
protected void Page_Load(object sender, EventArgs e) { List <EventPageBase> AllEvents = AttendScheduledEmailEngine.GetEventPageBases(); List <ScheduledEmailBlock> upcoming = new List <ScheduledEmailBlock>(); List <ScheduledEmailBlock> sendNow = new List <ScheduledEmailBlock>(); foreach (EventPageBase eventPage in AllEvents) { upcoming.AddRange(AttendScheduledEmailEngine.GetScheduledEmailsToSend(eventPage, DateTime.Now, DateTime.MaxValue)); sendNow.AddRange(AttendScheduledEmailEngine.GetScheduledEmailsToSend(eventPage, DateTime.MinValue, DateTime.Now)); } (UpcomingControl as EmailList).Messages = (from x in upcoming orderby x.SendDateTime ascending select x).ToList <ScheduledEmailBlock>(); (SendNowControl as EmailList).Messages = (from x in sendNow orderby x.SendDateTime ascending select x).ToList <ScheduledEmailBlock>(); UpcomingControl.DataBind(); SendNowControl.DataBind(); }
private void ConvertEmailTemplateToLocal(string sharedBlock, string localBlock) { EventPageBase currentEventPageBase = CurrentPage.CreateWritableClone() as EventPageBase; EmailTemplateBlock sharedBlockData = Get <EmailTemplateBlock>((CurrentPage as EventPageBase)[sharedBlock] as ContentReference) as EmailTemplateBlock; EmailTemplateBlock localBlockData = currentEventPageBase[localBlock] as EmailTemplateBlock; localBlockData.BCC = sharedBlockData.BCC; localBlockData.CC = sharedBlockData.CC; localBlockData.From = sharedBlockData.From; localBlockData.MainBody = sharedBlockData.MainBody; localBlockData.MainTextBody = sharedBlockData.MainTextBody; localBlockData.Subject = sharedBlockData.Subject; localBlockData.To = sharedBlockData.To; currentEventPageBase[sharedBlock] = null; Locate.ContentRepository().Save(currentEventPageBase, AttendScheduledEmailEngine.GetForcedSaveActionFor(currentEventPageBase)); ClientScript.RegisterStartupScript(this.GetType(), "scriptid", "window.parent.location.href='" + EPiServer.Editor.PageEditing.GetEditUrl((CurrentData as IContent).ContentLink) + "'", true); }
protected string GetClass() { if (CurrentBlock.EmailSendOptions == SendOptions.Action) { return("success"); } else { if ( AttendScheduledEmailEngine.GetSendDate(CurrentBlock, ServiceLocator.Current.GetInstance <IContentRepository>().Get <EventPageBase>(CurrentBlock.EventPage)) > DateTime.Now) { return("success"); } } return(""); }
protected string GetScheduledDate() { if (CurrentBlock.EmailSendOptions == SendOptions.Specific) { return(CurrentBlock.SpecificDateScheduled.ToString("g")); } if (CurrentBlock.EmailSendOptions == SendOptions.Action) { return(CurrentBlock.SendOnStatus.ToString()); } if (CurrentBlock.EventPage == null) { return(string.Empty); } if (CurrentBlock.EmailSendOptions == SendOptions.Relative) { return(CurrentBlock.ScheduledText() + ": " + AttendScheduledEmailEngine.GetSendDate(CurrentBlock, DataFactory.Instance.Get <EventPageBase>(CurrentBlock.EventPage)).ToShortDateString()); } return(string.Empty); }
protected string GetStatus() { return(AttendScheduledEmailEngine.GetStatus(CurrentBlock)); }
protected void Page_Load(object sender, EventArgs e) { ScheduledEmails = AttendScheduledEmailEngine.GetAllEmails(CurrentPage.ContentLink).ToList(); SetupGenericPreviewPropertyControl(ScheduledEmailContentArea, ScheduledEmails); }