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(); } }
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())); }