public int SendXDaysToBattleEndNotificationToFollower(User receiver, VideoBattle videoBattle, int languageId, int storeId) { var store = _storeService.GetStoreById(storeId) ?? _storeContext.CurrentStore; languageId = EnsureLanguageIsActive(languageId, store.Id); var messageTemplate = GetLocalizedActiveMessageTemplate("MobSocial.xDaysToBattleStartNotification", store.Id); if (messageTemplate == null) { return(0); } var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); //find the remaining days to end of battle var timeSpan = (int)Math.Ceiling(videoBattle.VotingEndDate.Subtract(DateTime.UtcNow).TotalDays); var formattedString = timeSpan > 1 ? string.Format("in {0} days", timeSpan) : "tomorrow"; //tokens var tokens = new List <Token> { new Token("Battle.Title", videoBattle.Name, true), new Token("Battle.Url", string.Format("{0}/VideoBattle/{1}", store.Url, videoBattle.GetSeName(_workContext.WorkingLanguage.Id, true, false)), true), new Token("Battle.EndDaysString", formattedString, true) }; _messageTokenProvider.AddStoreTokens(tokens, store, emailAccount); _messageTokenProvider.AddUserTokens(tokens, receiver); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var toEmail = receiver.Email; var toName = receiver.GetFullName().ToTitleCase(); return(SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName)); }
public int SendSponsorshipStatusChangeNotification(User receiver, SponsorshipStatus sponsorshipStatus, VideoBattle videoBattle, int languageId, int storeId) { var store = _storeService.GetStoreById(storeId) ?? _storeContext.CurrentStore; languageId = EnsureLanguageIsActive(languageId, store.Id); var messageTemplate = GetLocalizedActiveMessageTemplate("MobSocial.SponsorshipStatusChangeNotification", store.Id); if (messageTemplate == null) { return(0); } var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); //tokens var tokens = new List <Token> { new Token("Battle.Title", videoBattle.Name, true), new Token("Battle.Url", string.Format("{0}/VideoBattle/{1}", store.Url, videoBattle.GetSeName(_workContext.WorkingLanguage.Id, true, false)), true), new Token("Sponsorship.Status", sponsorshipStatus.ToString(), true) }; _messageTokenProvider.AddStoreTokens(tokens, store, emailAccount); _messageTokenProvider.AddUserTokens(tokens, receiver); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var toEmail = receiver.Email; var toName = receiver.GetFullName().ToTitleCase(); return(SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName)); }
public int SendSomeoneChallengedYouForABattleNotification(User challenger, string challengeeEmail, string challengeeName, VideoBattle videoBattle, int languageId, int storeId) { var store = _storeService.GetStoreById(storeId) ?? _storeContext.CurrentStore; languageId = EnsureLanguageIsActive(languageId, store.Id); var messageTemplate = GetLocalizedActiveMessageTemplate("MobSocial.SomeoneChallengedYouForBattleNotification", store.Id); if (messageTemplate == null) { return(0); } var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); //tokens var tokens = new List <Token> { new Token("VideoBattle.Title", videoBattle.Name, true), new Token("VideoBattle.Url", string.Format("{0}/VideoBattle/{1}", store.Url, videoBattle.GetSeName(_workContext.WorkingLanguage.Id, true, false)), true), new Token("Challenger.FirstName", challenger.GetFullName(), true) }; _messageTokenProvider.AddStoreTokens(tokens, store, emailAccount); _messageTokenProvider.AddUserTokens(tokens, challenger); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var toEmail = challengeeEmail; var toName = challengeeName; return(SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName)); }
public int SendXDaysToBattleStartNotificationToParticipant(User receiver, VideoBattle videoBattle, int languageId, int storeId) { var store = _storeService.GetStoreById(storeId) ?? _storeContext.CurrentStore; languageId = EnsureLanguageIsActive(languageId, store.Id); var messageTemplate = GetLocalizedActiveMessageTemplate("MobSocial.xDaysToBattleStartNotification", store.Id); if (messageTemplate == null) return 0; var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); //find the remaining days to start of battle var timeSpan = (int)Math.Ceiling(videoBattle.VotingStartDate.Subtract(DateTime.UtcNow).TotalDays); var formattedString = timeSpan > 1 ? string.Format("in {0} days", timeSpan) : "tomorrow"; //tokens var tokens = new List<Token> { new Token("Battle.Title", videoBattle.Name, true), new Token("Battle.Url", string.Format("{0}/VideoBattle/{1}", store.Url, videoBattle.GetSeName(_workContext.WorkingLanguage.Id, true, false)), true), new Token("Battle.StartDaysString", formattedString , true) }; _messageTokenProvider.AddStoreTokens(tokens, store, emailAccount); _messageTokenProvider.AddUserTokens(tokens, receiver); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var toEmail = receiver.Email; var toName = receiver.GetFullName().ToTitleCase(); return SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName); }
public int SendVideoBattleSignupAcceptedNotification(User challenger, User challengee, VideoBattle videoBattle, int languageId, int storeId) { var store = _storeService.GetStoreById(storeId) ?? _storeContext.CurrentStore; languageId = EnsureLanguageIsActive(languageId, store.Id); var messageTemplate = GetLocalizedActiveMessageTemplate("MobSocial.VideoBattleSignupAcceptedNotification", store.Id); if (messageTemplate == null) return 0; var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); //tokens var tokens = new List<Token> { new Token("VideoBattle.Title", videoBattle.Name, true), new Token("VideoBattle.Url", string.Format("{0}/VideoBattle/{1}", store.Url, videoBattle.GetSeName(_workContext.WorkingLanguage.Id, true, false)), true), new Token("Challenger.Name", challengee.GetFullName() , true) }; _messageTokenProvider.AddStoreTokens(tokens, store, emailAccount); _messageTokenProvider.AddUserTokens(tokens, challengee); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var toEmail = challenger.Email; var toName = challenger.GetFullName().ToTitleCase(); return SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName); }
public int SendSponsorshipStatusChangeNotification(Customer receiver, SponsorshipStatus sponsorshipStatus, VideoBattle videoBattle, int languageId, int storeId) { var store = _storeService.GetStoreById(storeId) ?? _storeContext.CurrentStore; languageId = EnsureLanguageIsActive(languageId, store.Id); var messageTemplate = GetLocalizedActiveMessageTemplate("MobSocial.SponsorshipStatusChangeNotification", store.Id); if (messageTemplate == null) return 0; var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); //tokens var tokens = new List<Token> { new Token("Battle.Title", videoBattle.Name, true), new Token("Battle.Url", string.Format("{0}/VideoBattle/{1}", store.Url, videoBattle.GetSeName(_workContext.WorkingLanguage.Id, true, false)), true), new Token("Sponsorship.Status", sponsorshipStatus.ToString() , true) }; _messageTokenProvider.AddStoreTokens(tokens, store, emailAccount); _messageTokenProvider.AddCustomerTokens(tokens, receiver); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var toEmail = receiver.Email; var toName = receiver.GetFullName().ToTitleCase(); return SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName); }