private IList <Token> GenerateTokens(ProductReview productReview) { var tokens = new List <Token>(); _messageTokenProvider.AddStoreTokens(tokens); _messageTokenProvider.AddProductReviewTokens(tokens, productReview); return(tokens); }
/// <summary> /// Sends a product review notification message to a store owner /// </summary> /// <param name="productReview">Product review</param> /// <param name="languageId">Message language identifier</param> /// <returns>Queued email identifier</returns> public virtual int SendProductReviewNotificationMessage(ProductReview productReview, int languageId) { if (productReview == null) { throw new ArgumentNullException("productReview"); } var store = _storeContext.CurrentStore; languageId = EnsureLanguageIsActive(languageId, store.Id); var messageTemplate = GetActiveMessageTemplate(MessageTemplateSystemNames.ProductReviewNotification, 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.AddProductReviewTokens(tokens, productReview); _messageTokenProvider.AddCustomerTokens(tokens, productReview.Customer); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var toEmail = emailAccount.Email; var toName = emailAccount.DisplayName; return(SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName)); }