/// <summary> /// The get content. /// </summary> /// <param name="emailCargo"> /// The email Job. /// </param> /// <returns> /// The <see cref="EmailContent"/>. /// </returns> /// <exception cref="TemplateRenderException"> /// error while rendering the template /// </exception> public EmailData GetContent(object emailCargo) { EmailData emailData = null; CampaignEmailCargo campaignEmailCargo = emailCargo as CampaignEmailCargo; if (campaignEmailCargo != null) { string locationId = campaignEmailCargo.LocationId; CampaignTemplateData campaignTemplateData = new CampaignTemplateData { EmailAddress = campaignEmailCargo.EmailAddress, UnsubscribeUrl = campaignEmailCargo.UnsubscribeUrl, LocationId = locationId, Content = campaignEmailCargo.Content, IncludeBusinessNames = campaignEmailCargo.IncludeBusinessNames }; var model = this._templateModelCreator.GenerateModel(campaignTemplateData); if (model != null) { EmailRenderingClient <CampaignDataContract> emailRenderingClient = new EmailRenderingClient <CampaignDataContract> { EmailRenderingServiceUrl = campaignEmailCargo.EmailRenderingServiceAddress }; emailData = new EmailData { Subject = campaignEmailCargo.Subject, HtmlBody = emailRenderingClient.RenderHtml(model) }; } } return(emailData); }
/// <summary> /// Creates the email content for deals email /// </summary> /// <param name="campaignEmailCargo">Deals Email cargo</param> /// <returns>EmailContent for deals email</returns> private EmailContent PrepareEmail(CampaignEmailCargo campaignEmailCargo) { EmailContent emailContent = null; EmailData emailData = _emailContentCreator.GetContent(campaignEmailCargo); if (emailData != null) { bool isTest = (campaignEmailCargo.Hints != null) && campaignEmailCargo.Hints.IsTest; emailContent = new EmailContent { From = isTest ? this._emailFromAddressTestAccount : this._emailFromAddress, FromDisplay = this._emailFromDisplay, Subject = emailData.Subject, HtmlBody = emailData.HtmlBody, TextBody = emailData.TextBody, Category = campaignEmailCargo.Campaign }; } return(emailContent); }
/// <summary> /// Handles the Deals email job /// </summary> /// <param name="emailCargo">Deals email cargo</param> public void Handle(EmailCargo emailCargo) { CampaignEmailCargo campaignEmailCargo = emailCargo as CampaignEmailCargo; if (campaignEmailCargo != null) { EmailContent emailContent = PrepareEmail(campaignEmailCargo); if (emailContent != null) { bool isTest = (campaignEmailCargo.Hints != null) && campaignEmailCargo.Hints.IsTest; SendEmailRequest request = new SendEmailRequest { Content = emailContent, ToList = new List <string> { campaignEmailCargo.EmailAddress }, IsTest = isTest }; // Send the email this._userServicesClient.SendEmail(campaignEmailCargo.Id, request, null); } } }