コード例 #1
0
        /// <summary>
        /// Creates the email content for deals email
        /// </summary>
        /// <param name="dealsEmailCargo">Deals Email cargo</param>
        /// <returns>EmailContent for deals email</returns>
        private EmailContent PrepareEmail(DealsEmailCargo dealsEmailCargo)
        {
            EmailData    emailData    = _emailContentCreator.GetContent(dealsEmailCargo);
            bool         isTest       = (dealsEmailCargo.Hints != null) && dealsEmailCargo.Hints.IsTest;
            EmailContent emailContent = new EmailContent
            {
                From        = isTest ? this._emailFromAddressTestAccount : this._emailFromAddress,
                FromDisplay = this._emailFromDisplay,
                Subject     = emailData.Subject,
                HtmlBody    = emailData.HtmlBody,
                TextBody    = emailData.TextBody,
                Category    = dealsEmailCargo.Campaign
            };

            if (!dealsEmailCargo.Hints.IsTestEmail)
            {
                // Saving the email data in the history table
                UserEmailEntity emailToSend = new UserEmailEntity(dealsEmailCargo.UserId, dealsEmailCargo.LocationId, DateTime.UtcNow, EmailType.WeeklyDeal);
                emailToSend.SetSerializedPayload(new UserEmailPayload {
                    DealIds = emailData.DealIds
                });
                this._userHistoryStorage.SaveUserEmailEntity(emailToSend);
            }

            return(emailContent);
        }
コード例 #2
0
        /// <summary>
        /// Handles the Remainder email job
        /// </summary>
        /// <param name="emailCargo">RemainderEmail cargo</param>
        public void Handle(EmailCargo emailCargo)
        {
            PromotionalEmailCargo remainderEmailCargo = emailCargo as PromotionalEmailCargo;

            if (remainderEmailCargo != null)
            {
                var emailHistoryEntities = this._userHistoryStorage.GetUserEmailEntities(remainderEmailCargo.UserId, _mailHistoryLookback).ToList();
                if (this.IsSendTimeWindowValid(emailHistoryEntities.FirstOrDefault(elem => string.Compare(elem.EmailType, EmailType.CompleteSignup.ToString(), StringComparison.CurrentCultureIgnoreCase) == 0), remainderEmailCargo))
                {
                    EmailData    emailData    = _emailContentCreator.GetContent(remainderEmailCargo);
                    bool         isTest       = (remainderEmailCargo.Hints != null) && remainderEmailCargo.Hints.IsTest;
                    EmailContent emailContent = new EmailContent
                    {
                        From        = isTest ? this._emailFromAddressTestAccount : this._emailFromAddress,
                        FromDisplay = this._emailFromDisplay,
                        Subject     = emailData.Subject,
                        HtmlBody    = emailData.HtmlBody,
                        TextBody    = emailData.TextBody,
                        Category    = remainderEmailCargo.Campaign
                    };
                    SendEmailRequest request = new SendEmailRequest
                    {
                        Content = emailContent,
                        ToList  = new List <string> {
                            remainderEmailCargo.EmailAddress
                        },
                        IsTest = isTest
                    };

                    // Send the email
                    this._userServicesClient.SendEmail(remainderEmailCargo.Id, request, null);

                    PromotionalEmailType remainderType;
                    if (Enum.TryParse(remainderEmailCargo.PromotionalEmailType, true, out remainderType))
                    {
                        // Saving the email data in the history table
                        UserEmailEntity emailToSend = new UserEmailEntity(remainderEmailCargo.UserId, string.Empty, DateTime.UtcNow, EmailType.CompleteSignup);
                        this._userHistoryStorage.SaveUserEmailEntity(emailToSend);
                    }
                }
            }
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <summary>
        /// Handles the Merchant Email job
        /// </summary>
        /// <param name="emailCargo">Merchant Email cargo</param>
        public void Handle(EmailCargo emailCargo)
        {
            MerchantReportEmailCargo merchantReportEmailCargo = emailCargo as MerchantReportEmailCargo;

            if (merchantReportEmailCargo != null)
            {
                EmailData emailData = _emailContentCreator.GetContent(merchantReportEmailCargo);
                if (emailData != null)
                {
                    bool         isTest       = (merchantReportEmailCargo.Hints != null) && merchantReportEmailCargo.Hints.IsTest;
                    EmailContent emailContent = new EmailContent
                    {
                        From        = isTest ? this._emailFromAddressTestAccount : this._merchantEmailFromAddress,
                        FromDisplay = this._emailFromDisplay,
                        Subject     = emailData.Subject,
                        HtmlBody    = emailData.HtmlBody,
                        TextBody    = emailData.TextBody,
                        Category    = merchantReportEmailCargo.Campaign
                    };
                    SendEmailRequest request = new SendEmailRequest
                    {
                        Content = emailContent,
                        ToList  = new List <string> {
                            merchantReportEmailCargo.EmailAddress
                        },
                        IsTest = isTest
                    };

                    // Send the email
                    Log.Verbose("Sending email for the email job : {0}", emailCargo.ToString());
                    this._userServicesClient.SendEmail(merchantReportEmailCargo.Id, request, null);
                }
                JobFetcher.CompleteJob(merchantReportEmailCargo.Id);
            }
            else
            {
                Log.Error("Invalid handler for the email job : {0}", emailCargo.ToString());
            }
        }