internal LogicalMessage(MessageMetadata metadata, object message, Dictionary<string, string> headers, LogicalMessageFactory factory) { this.factory = factory; Instance = message; Metadata = metadata; Headers = headers; }
internal LogicalMessage(MessageMetadata metadata, object message, Dictionary <string, string> headers, LogicalMessageFactory factory) { this.factory = factory; Instance = message; Metadata = metadata; Headers = headers; }
List <LogicalMessage> Extract(TransportMessage physicalMessage) { if (physicalMessage.Body == null || physicalMessage.Body.Length == 0) { return(new List <LogicalMessage>()); } var messageMetadata = MessageMetadataRegistry.GetMessageTypes(physicalMessage); using (var stream = new MemoryStream(physicalMessage.Body)) { var messageTypesToDeserialize = messageMetadata.Select(metadata => metadata.MessageType).ToList(); return(MessageSerializer.Deserialize(stream, messageTypesToDeserialize) .Select(x => LogicalMessageFactory.Create(x.GetType(), x, physicalMessage.Headers)) .ToList()); } }
List <LogicalMessage> Extract(TransportMessage physicalMessage) { if (physicalMessage.Body == null || physicalMessage.Body.Length == 0) { return(new List <LogicalMessage>()); } string messageTypeIdentifier; var messageMetadata = new List <MessageMetadata>(); if (physicalMessage.Headers.TryGetValue(Headers.EnclosedMessageTypes, out messageTypeIdentifier)) { foreach (var messageTypeString in messageTypeIdentifier.Split(';')) { if (DoesTypeHaveImplAddedByVersion3(messageTypeString)) { continue; } var metadata = MessageMetadataRegistry.GetMessageMetadata(messageTypeString); if (metadata == null) { continue; } messageMetadata.Add(metadata); } if (messageMetadata.Count == 0 && physicalMessage.MessageIntent != MessageIntentEnum.Publish) { log.WarnFormat("Could not determine message type from message header '{0}'. MessageId: {1}", messageTypeIdentifier, physicalMessage.Id); } } using (var stream = new MemoryStream(physicalMessage.Body)) { var messageTypesToDeserialize = messageMetadata.Select(metadata => metadata.MessageType).ToList(); return(MessageSerializer.Deserialize(stream, messageTypesToDeserialize) .Select(x => LogicalMessageFactory.Create(x.GetType(), x, physicalMessage.Headers)) .ToList()); } }
internal LogicalMessage(Dictionary<string, string> headers, LogicalMessageFactory factory) { this.factory = factory; Metadata = new MessageMetadata(); Headers = headers; }
internal LogicalMessage(Dictionary <string, string> headers, LogicalMessageFactory factory) { this.factory = factory; Metadata = new MessageMetadata(); Headers = headers; }