private IList <Token> GenerateTokens(BlogComment blogComment) { var tokens = new List <Token>(); _messageTokenProvider.AddStoreTokens(tokens); _messageTokenProvider.AddBlogCommentTokens(tokens, blogComment); return(tokens); }
/// <summary> /// Sends a blog comment notification message to a store owner /// </summary> /// <param name="blogComment">Blog comment</param> /// <param name="languageId">Message language identifier</param> /// <returns>List of queued email identifiers</returns> public virtual IList <int> SendBlogCommentNotificationMessage(BlogComment blogComment, int languageId) { if (blogComment == null) { throw new ArgumentNullException(nameof(blogComment)); } var store = _storeContext.CurrentStore; languageId = EnsureLanguageIsActive(languageId, store.Id); var messageTemplates = GetActiveMessageTemplates(MessageTemplateSystemNames.BlogCommentNotification, store.Id); if (!messageTemplates.Any()) { return(new List <int>()); } //tokens var commonTokens = new List <Token>(); _messageTokenProvider.AddBlogCommentTokens(commonTokens, blogComment); _messageTokenProvider.AddCustomerTokens(commonTokens, blogComment.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 = emailAccount.Email; var toName = emailAccount.DisplayName; return SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName); }).ToList()); }