/// <summary> /// Sends a forum subscription message to a user /// </summary> /// <param name="user">User instance</param> /// <param name="forumPost">Forum post</param> /// <param name="forumTopic">Forum Topic</param> /// <param name="forum">Forum</param> /// <param name="friendlyForumTopicPageIndex">Friendly (starts with 1) forum topic page to use for URL generation</param> /// <param name="languageId">Message language identifier</param> /// <returns>Queued email identifier</returns> public int SendNewForumPostMessage(User user, ForumPost forumPost, ForumTopic forumTopic, Forum forum, int friendlyForumTopicPageIndex, int languageId) { if (user == null) { throw new ArgumentNullException("user"); } var messageTemplate = GetLocalizedActiveMessageTemplate("Forums.NewForumPost", languageId); if (messageTemplate == null) { return(0); } //tokens var tokens = new List <Token>(); _messageTokenProvider.AddSiteTokens(tokens); _messageTokenProvider.AddForumPostTokens(tokens, forumPost); _messageTokenProvider.AddForumTopicTokens(tokens, forumPost.ForumTopic, friendlyForumTopicPageIndex, forumPost.Id); _messageTokenProvider.AddForumTokens(tokens, forumPost.ForumTopic.Forum); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); var toEmail = user.Email; var toName = user.GetFullName(); return(SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName)); }
private IList <Token> GenerateTokens(ForumPost forumPost) { var tokens = new List <Token>(); _messageTokenProvider.AddStoreTokens(tokens); _messageTokenProvider.AddForumPostTokens(tokens, forumPost); _messageTokenProvider.AddForumTopicTokens(tokens, forumPost.ForumTopic); _messageTokenProvider.AddForumTokens(tokens, forumPost.ForumTopic.Forum); return(tokens); }
private IList <Token> GenerateTokens(ForumPost forumPost, int friendlyForumTopicPageIndex, int appendPostIdentifier) { var tokens = new List <Token>(); _messageTokenProvider.AddStoreTokens(tokens); _messageTokenProvider.AddForumPostTokens(tokens, forumPost); _messageTokenProvider.AddForumTopicTokens(tokens, forumPost.ForumTopic, friendlyForumTopicPageIndex, appendPostIdentifier); _messageTokenProvider.AddForumTokens(tokens, forumPost.ForumTopic.Forum); return(tokens); }
/// <summary> /// Sends a forum subscription message to a customer /// </summary> /// <param name="customer">Customer instance</param> /// <param name="forumPost">Forum post</param> /// <param name="forumTopic">Forum Topic</param> /// <param name="forum">Forum</param> /// <param name="friendlyForumTopicPageIndex">Friendly (starts with 1) forum topic page to use for URL generation</param> /// <param name="languageId">Message language identifier</param> /// <returns>Queued email identifier</returns> public virtual IList <int> SendNewForumPostMessage(Customer customer, ForumPost forumPost, ForumTopic forumTopic, Forum forum, int friendlyForumTopicPageIndex, int languageId) { if (customer == null) { throw new ArgumentNullException(nameof(customer)); } var store = _storeContext.CurrentStore; var messageTemplates = GetActiveMessageTemplates(MessageTemplateSystemNames.NewForumPostMessage, store.Id); if (!messageTemplates.Any()) { return(new List <int>()); } //tokens var commonTokens = new List <Token>(); _messageTokenProvider.AddForumPostTokens(commonTokens, forumPost); _messageTokenProvider.AddForumTopicTokens(commonTokens, forumPost.ForumTopic, friendlyForumTopicPageIndex, forumPost.Id); _messageTokenProvider.AddForumTokens(commonTokens, forumPost.ForumTopic.Forum); _messageTokenProvider.AddCustomerTokens(commonTokens, customer); return(messageTemplates.Select(messageTemplate => { //email account var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); var tokens = new List <Token>(commonTokens); _messageTokenProvider.AddStoreTokens(tokens, store, emailAccount); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var toEmail = customer.Email; var toName = _customerService.GetCustomerFullName(customer); return SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName); }).ToList()); }
/// <summary> /// Sends a forum subscription message to a customer /// </summary> /// <param name="customer">Customer instance</param> /// <param name="forumPost">Forum post</param> /// <param name="forumTopic">Forum Topic</param> /// <param name="forum">Forum</param> /// <param name="friendlyForumTopicPageIndex">Friendly (starts with 1) forum topic page to use for URL generation</param> /// <param name="languageId">Message language identifier</param> /// <returns>Queued email identifier</returns> public int SendNewForumPostMessage(Customer customer, ForumPost forumPost, ForumTopic forumTopic, Forum forum, int friendlyForumTopicPageIndex, int languageId) { if (customer == null) { throw new ArgumentNullException("customer"); } var store = _storeContext.CurrentStore; var messageTemplate = GetActiveMessageTemplate(MessageTemplateSystemNames.NewForumPostMessage, store.Id); if (messageTemplate == null) { return(0); } //email account var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); //tokens var tokens = new List <Token>(); _messageTokenProvider.AddStoreTokens(tokens, store, emailAccount); _messageTokenProvider.AddForumPostTokens(tokens, forumPost); _messageTokenProvider.AddForumTopicTokens(tokens, forumPost.ForumTopic, friendlyForumTopicPageIndex, forumPost.Id); _messageTokenProvider.AddForumTokens(tokens, forumPost.ForumTopic.Forum); _messageTokenProvider.AddCustomerTokens(tokens, customer); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var toEmail = customer.Email; var toName = customer.GetFullName(); return(SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName)); }