Beispiel #1
0
        private void ConsumeMessage(SubscriberInfo subscriberInfo, IBrokeredMessage brokeredMessage)
        {
            try
            {
                var messageBody = brokeredMessage.GetBody <string>();
                var message     = JsonConvert.DeserializeObject <TMessage>(messageBody);

                _logService.Debug("Consuming message id '{0}', topic/subscription '{1}', body '{2}'",
                                  brokeredMessage.MessageId, subscriberInfo.SubscriptionPath, messageBody);

                var state = subscriberInfo.Subscriber.Consume(message);

                HandleMessageResult(subscriberInfo, state, brokeredMessage, messageBody);

                _logService.Debug("Consumed message id '{0}', topic/subscription '{1}', body '{2}'",
                                  brokeredMessage.MessageId, subscriberInfo.SubscriptionPath, messageBody);
            }
            catch (Exception e)
            {
                var deadLetterReason = string.Format(
                    "Unexpected exception consuming message id '{0}, topic/subscription '{1}': message will be dead-lettered",
                    brokeredMessage.MessageId, subscriberInfo.SubscriptionPath);

                _logService.Error(deadLetterReason, e);

                brokeredMessage.DeadLetter();
            }
        }
Beispiel #2
0
        public MockBrokeredMessage(IBus serviceBus, IBrokeredMessage original)
        {
            Guard.ArgumentNotNull(serviceBus, "serviceBus");
            Guard.ArgumentNotNull(original, "original");
            this.serviceBus = serviceBus as IMockServiceBus;
            Guard.ArgumentNotNull(this.serviceBus, "serviceBus");

            //we only work with the MockBrokeredMessage at this time.

            var ms             = new MemoryStream();
            var originalStream = original.GetBody <Stream>() as MemoryStream;

            if (originalStream == null)
            {
                throw new ApplicationException("We only work with MemoryStream objects at this time.");
            }

            originalStream.CopyTo(ms);
            originalStream.Position = 0;
            ms.Position             = 0;

            this.SetBody(ms);
        }
 public string GetBody() => _inner.GetBody();
        public TMessage Deserialize(IBrokeredMessage message)
        {
            message.AssertTypeAndSchemaVersion(SchemaName, SchemaVersion);

            return(JsonConvert.DeserializeObject <TMessage>(message.GetBody()));
        }