/// <summary> /// Deleted a queued email /// </summary> /// <param name="campaign">Campaign</param> public virtual void DeleteCampaign(Campaign campaign) { if (campaign == null) throw new ArgumentNullException("campaign"); _campaignRepository.Delete(campaign); //event notification _eventPublisher.EntityDeleted(campaign); }
public void Can_save_and_load_campaign() { var campaign = new Campaign { Name = "Name 1", Subject = "Subject 1", Body = "Body 1", CreatedOnUtc = new DateTime(2010,01,02) }; var fromDb = SaveAndLoadEntity(campaign); fromDb.ShouldNotBeNull(); fromDb.Name.ShouldEqual("Name 1"); fromDb.Subject.ShouldEqual("Subject 1"); fromDb.Body.ShouldEqual("Body 1"); fromDb.CreatedOnUtc.ShouldEqual(new DateTime(2010, 01, 02)); }
/// <summary> /// Sends a campaign to specified email /// </summary> /// <param name="campaign">Campaign</param> /// <param name="emailAccount">Email account</param> /// <param name="email">Email</param> public virtual void SendCampaign(Campaign campaign, EmailAccount emailAccount, string email) { if (campaign == null) throw new ArgumentNullException("campaign"); if (emailAccount == null) throw new ArgumentNullException("emailAccount"); var tokens = new List<Token>(); _messageTokenProvider.AddStoreTokens(tokens, _storeContext.CurrentStore); var customer = _customerService.GetCustomerByEmail(email); if (customer != null) _messageTokenProvider.AddCustomerTokens(tokens, customer); string subject = _tokenizer.Replace(campaign.Subject, tokens, false); string body = _tokenizer.Replace(campaign.Body, tokens, true); var from = new MailAddress(emailAccount.Email, emailAccount.DisplayName); var to = new MailAddress(email); _emailSender.SendEmail(emailAccount, subject, body, from, to); }
/// <summary> /// Sends a campaign to specified emails /// </summary> /// <param name="campaign">Campaign</param> /// <param name="emailAccount">Email account</param> /// <param name="subscriptions">Subscriptions</param> /// <returns>Total emails sent</returns> public virtual int SendCampaign(Campaign campaign, EmailAccount emailAccount, IEnumerable<NewsLetterSubscription> subscriptions) { if (campaign == null) throw new ArgumentNullException("campaign"); if (emailAccount == null) throw new ArgumentNullException("emailAccount"); int totalEmailsSent = 0; foreach (var subscription in subscriptions) { var tokens = new List<Token>(); _messageTokenProvider.AddStoreTokens(tokens, _storeContext.CurrentStore); _messageTokenProvider.AddNewsLetterSubscriptionTokens(tokens, subscription); var customer = _customerService.GetCustomerByEmail(subscription.Email); if (customer != null) _messageTokenProvider.AddCustomerTokens(tokens, customer); string subject = _tokenizer.Replace(campaign.Subject, tokens, false); string body = _tokenizer.Replace(campaign.Body, tokens, true); var email = new QueuedEmail() { Priority = 3, From = emailAccount.Email, FromName = emailAccount.DisplayName, To = subscription.Email, Subject = subject, Body = body, CreatedOnUtc = DateTime.UtcNow, EmailAccountId = emailAccount.Id }; _queuedEmailService.InsertQueuedEmail(email); totalEmailsSent++; } return totalEmailsSent; }
public static Campaign ToEntity(this CampaignModel model, Campaign destination) { return Mapper.Map(model, destination); }