Пример #1
0
        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);
 }
Пример #3
0
 public void Handle(MassMessageSendRequestedEvent @event)
 {
     AddActivityLog(AdminActivityLogCategory.Messaging, @event);
 }