Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* EMAIL GADGETRY */
- public static void SendEmailUsingSitefinityFromEmailTemplate(string emailTemplateFileName, Dictionary<string, string> mergeData, User user, string notificationProfile = "Default") {
- SendEmailUsingSitefinityFromEmailTemplate(emailTemplateFileName, mergeData, EmailContact.AsList(user));
- }
- public static void SendEmailUsingSitefinityFromEmailTemplate(string emailTemplateFileName, Dictionary<string, string> mergeData, string email, string firstName, string lastName, string notificationProfile = "Default") {
- SendEmailUsingSitefinityFromEmailTemplate(emailTemplateFileName, mergeData, EmailContact.AsList(email, firstName, lastName));
- }
- public static void SendEmailUsingSitefinityFromEmailTemplate(string emailTemplateFileName, Dictionary<string, string> mergeData, IEnumerable<EmailContact> emailContacts, string notificationProfile = "Default") {
- var filePath = HttpContext.Current.Server.MapPath(string.Format("/Websilk/EmailTemplates/{0}.txt", emailTemplateFileName));
- var fileLines = File.ReadAllLines(filePath).ToList();
- var subject = fileLines[0];
- fileLines.RemoveAt(0);
- var bodyText = string.Join("\n", fileLines);
- SendEmailUsingSitefinity(subject, bodyText, emailTemplateFileName, mergeData, emailContacts, notificationProfile);
- }
- public static void SendEmailUsingSitefinity(string subject, string bodyText, string programmaticEmailName, Dictionary<string, string> mergeData, User user, string notificationProfile = "Default") {
- SendEmailUsingSitefinity(subject, bodyText, programmaticEmailName, mergeData, EmailContact.AsList(user), notificationProfile);
- }
- public static void SendEmailUsingSitefinity(string subject, string bodyText, string programmaticEmailName, Dictionary<string, string> mergeData, string email, string firstName, string lastName, string notificationProfile = "Default") {
- SendEmailUsingSitefinity(subject, bodyText, programmaticEmailName, mergeData, EmailContact.AsList(email, firstName, lastName), notificationProfile);
- }
- public static void SendEmailUsingSitefinity(string subject, string bodyText, string programmaticEmailName, Dictionary<string, string> mergeData, IEnumerable<EmailContact> emailContacts, string notificationProfile = "Default") {
- var subscriberRequestProxies = emailContacts.Select(o => new SubscriberRequestProxy() {
- Email = o.Email,
- FirstName = o.FirstName,
- LastName = o.LastName
- });
- var messageTemplateRequest = new MessageTemplateRequestProxy() {
- Subject = subject,
- PlainTextVersion = bodyText
- };
- //if he body starts with the HTML element set BodyHtml
- if(bodyText.StartsWith("<html>"))
- {
- messageTemplateRequest.BodyHtml = bodyText;
- }
- var messageJobRequest = new MessageJobRequestProxy() {
- MessageTemplate = messageTemplateRequest,
- Subscribers = subscriberRequestProxies,
- SenderProfileName = notificationProfile
- };
- //Send to the Message Queue
- var context = new ServiceContext("CustomEmail", programmaticEmailName);
- SystemManager.GetNotificationService().SendMessage(context, messageJobRequest, mergeData);
- }
- public class EmailContact {
- public string Email { get; set; }
- public string FirstName { get; set; }
- public string LastName { get; set; }
- public EmailContact(string email, string firstName, string lastName) {
- Email = email;
- FirstName = firstName;
- LastName = lastName;
- }
- public EmailContact(User user) {
- var sitefinityProfile = user.GetSitefinityProfile();
- Email = user.Email;
- FirstName = sitefinityProfile.FirstName;
- LastName = sitefinityProfile.LastName;
- }
- public static List<EmailContact> AsList(string email, string firstName, string lastName) {
- return new List<EmailContact>() {
- new EmailContact(email, firstName, lastName)
- };
- }
- public static List<EmailContact> AsList(User user) {
- return new List<EmailContact>() {
- new EmailContact(user)
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment