public void Consume(MassMessageSendRequestedEvent message) { var massMessage = _repository.MassMessages .Include(x => x.Recipients.Select(y => y.Language)) .Include(x => x.Recipients.Select(y => y.Brand)) .Single(x => x.Id == message.Request.Id); var brand = massMessage.Recipients.First().Brand; var model = new MassMessageTemplateModel { BrandName = brand.Name, BrandWebsite = brand.WebsiteUrl }; foreach (var recipient in massMessage.Recipients) { model.FirstName = recipient.FirstName; model.LastName = recipient.LastName; model.Username = recipient.Username; var recipientContent = message.Request.Content .SingleOrDefault(x => x.LanguageCode == recipient.LanguageCode); if (recipientContent != null) { var onSiteMessageEvent = new OnSiteMessageSentEvent( massMessage.Id, recipient.Id, _service.ParseTemplate(recipientContent.OnSiteSubject, model), _service.ParseTemplate(recipientContent.OnSiteContent, model)); _eventBus.Publish(onSiteMessageEvent); } } massMessage.DateSent = DateTimeOffset.UtcNow; _repository.SaveChanges(); }
public void Consume(MassMessageSendRequestedEvent message) { _eventHandlers.Handle(message); }
public void Handle(MassMessageSendRequestedEvent @event) { AddActivityLog(AdminActivityLogCategory.Messaging, @event); }