public static KafkaBatchContainer ToBatchContainer( this ConsumeResult <byte[], byte[]> result, SerializationContext serializationContext, QueueProperties queueProperties ) { var sequence = new EventSequenceTokenV2(result.Offset.Value); if (queueProperties.IsExternal) { var key = Encoding.UTF8.GetString(result.Key); return(new KafkaExternalBatchContainer( StreamProviderUtils.GenerateStreamGuid(key), queueProperties, new List <byte[]> { result.Value }, sequence, result.TopicPartitionOffset, serializationContext.ExternalStreamDeserializer )); } var serializationManager = serializationContext.SerializationManager; var batchContainer = serializationManager.DeserializeFromByteArray <KafkaBatchContainer>(result.Value); if (batchContainer.SequenceToken == null) { batchContainer.SequenceToken = sequence; } batchContainer.TopicPartitionOffSet = result.TopicPartitionOffset; return(batchContainer); }
public static KafkaBatchContainer ToBatchContainer( this ConsumeResult <byte[], byte[]> result, SerializationContext serializationContext, QueueProperties queueProperties ) { var sequence = new EventSequenceTokenV2(result.Offset.Value); if (queueProperties.IsExternal) { var key = Encoding.UTF8.GetString(result.Message.Key); var message = serializationContext .ExternalStreamDeserializer .Deserialize(queueProperties, queueProperties.ExternalContractType, result.Message.Value); return(new KafkaBatchContainer( StreamProviderUtils.GenerateStreamGuid(key), queueProperties.Namespace, new List <object> { message }, null, sequence, result.TopicPartitionOffset )); } var serializationManager = serializationContext.SerializationManager; var batchContainer = serializationManager.DeserializeFromByteArray <KafkaBatchContainer>(result.Message.Value); batchContainer.SequenceToken ??= sequence; batchContainer.TopicPartitionOffSet = result.TopicPartitionOffset; return(batchContainer); }