示例#1
0
        public void Consume(OnSiteMessageSentEvent message)
        {
            var player = _playerRepository.Players
                         .Include(x => x.OnSiteMessages)
                         .Single(x => x.Id == message.PlayerId);

            player.OnSiteMessages.Add(new OnSiteMessage
            {
                Id       = Guid.NewGuid(),
                Subject  = message.Subject,
                Content  = message.Content,
                Received = DateTimeOffset.UtcNow,
                IsNew    = true
            });

            _playerRepository.SaveChanges();
        }
        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();
        }
示例#3
0
 // Messaging
 public void Consume(OnSiteMessageSentEvent message)
 {
     _messagingHandlers.Handle(message);
 }
示例#4
0
 public void Handle(OnSiteMessageSentEvent @event)
 {
     AddActivityLog("On Site Message Sent", @event, @event.PlayerId);
 }