Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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);
 }