protected virtual NewsletterDetails GetNewsletterFromReader(IDataReader reader, bool readBody) { NewsletterDetails newsletter = new NewsletterDetails( (int)reader["NewsletterID"], (DateTime)reader["AddedDate"], reader["AddedBy"].ToString(), reader["Subject"].ToString(), null, null); if (readBody) { newsletter.PlainTextBody = reader["PlainTextBody"].ToString(); newsletter.HtmlBody = reader["HtmlBody"].ToString(); } return(newsletter); }
/// <summary> /// Returns a Newsletter object filled with the data taken from the input NewsletterDetails /// </summary> private static Newsletter GetNewsletterFromNewsletterDetails(NewsletterDetails record) { if (record == null) return null; else { return new Newsletter(record.ID, record.AddedDate, record.AddedBy, record.Subject, record.PlainTextBody, record.HtmlBody); } }
/// <summary> /// Updates an existing newsletter /// </summary> public static bool UpdateNewsletter(int id, string subject, string plainTextBody, string htmlBody) { NewsletterDetails record = new NewsletterDetails(id, DateTime.Now, "", subject, plainTextBody, htmlBody); bool ret = SiteProvider.Newsletters.UpdateNewsletter(record); BizObject.PurgeCacheItems("newsletters_newsletter"); return ret; }
/// <summary> /// Sends a newsletter /// </summary> public static int SendNewsletter(string subject, string plainTextBody, string htmlBody) { Lock.AcquireWriterLock(Timeout.Infinite); Newsletter.TotalMails = -1; Newsletter.SentMails = 0; Newsletter.PercentageCompleted = 0.0; Newsletter.IsSending = true; Lock.ReleaseWriterLock(); // if the HTML body is an empty string, use the plain-text body converted to HTML if (htmlBody.Trim().Length == 0) htmlBody = Helpers.ConvertToHtml(plainTextBody); // create the record into the DB NewsletterDetails record = new NewsletterDetails(0, DateTime.Now, BizObject.CurrentUserName, subject, plainTextBody, htmlBody); int ret = SiteProvider.Newsletters.InsertNewsletter(record); BizObject.PurgeCacheItems("newsletters_newsletters_" + DateTime.Now.ToShortDateString()); // send the newsletters asynchronously object[] parameters = new object[]{subject, plainTextBody, htmlBody, BizObject.CurrentUserName.ToLower() == "sampleeditor", HttpContext.Current}; ParameterizedThreadStart pts = new ParameterizedThreadStart(SendEmails); Thread thread = new Thread(pts); thread.Name = "SendEmails"; thread.Priority = ThreadPriority.BelowNormal; thread.Start(parameters); return ret; }
protected virtual NewsletterDetails GetNewsletterFromReader(IDataReader reader, bool readBody) { NewsletterDetails newsletter = new NewsletterDetails( (int)reader["NewsletterID"], (DateTime)reader["AddedDate"], reader["AddedBy"].ToString(), reader["Subject"].ToString(), null, null); if (readBody) { newsletter.PlainTextBody = reader["PlainTextBody"].ToString(); newsletter.HtmlBody = reader["HtmlBody"].ToString(); } return newsletter; }
public abstract bool UpdateNewsletter(NewsletterDetails newsletter);
public abstract int InsertNewsletter(NewsletterDetails newsletter);