public static DateTime AbsoluteExpiryTime(this Microsoft.ServiceBus.Messaging.Amqp.Framing.Properties properties) { if (!properties.AbsoluteExpiryTime.HasValue) { return(new DateTime()); } return(properties.AbsoluteExpiryTime.Value); }
public static string TrackingId(this Microsoft.ServiceBus.Messaging.Amqp.Framing.Properties properties) { if (properties.CorrelationId != null) { return(properties.CorrelationId.ToString()); } if (properties.MessageId != null) { return(properties.MessageId.ToString()); } properties.MessageId = Guid.NewGuid(); return(properties.MessageId.ToString()); }
public static SequenceNumber GroupSequence(this Microsoft.ServiceBus.Messaging.Amqp.Framing.Properties properties) { uint value; if (!properties.GroupSequence.HasValue) { value = 0; } else { value = properties.GroupSequence.Value; } return(value); }
public static AmqpMessage ClientGetMessage(BrokeredMessage brokeredMessage) { AmqpMessage messageId = MessageConverter.CreateAmqpMessageFromSbmpMessage(brokeredMessage); messageId.Properties.MessageId = brokeredMessage.MessageId; messageId.Properties.CorrelationId = brokeredMessage.CorrelationId; messageId.Properties.ContentType = brokeredMessage.ContentType; messageId.Properties.Subject = brokeredMessage.Label; messageId.Properties.To = brokeredMessage.To; messageId.Properties.ReplyTo = brokeredMessage.ReplyTo; messageId.Properties.GroupId = brokeredMessage.SessionId; messageId.Properties.ReplyToGroupId = brokeredMessage.ReplyToSessionId; if ((int)(brokeredMessage.InitializedMembers & BrokeredMessage.MessageMembers.TimeToLive) != 0) { messageId.Header.Ttl = new uint?((uint)brokeredMessage.TimeToLive.TotalMilliseconds); messageId.Properties.CreationTime = new DateTime?(DateTime.UtcNow); if ((AmqpConstants.MaxAbsoluteExpiryTime - messageId.Properties.CreationTime.Value) <= brokeredMessage.TimeToLive) { messageId.Properties.AbsoluteExpiryTime = new DateTime?(AmqpConstants.MaxAbsoluteExpiryTime); } else { Microsoft.ServiceBus.Messaging.Amqp.Framing.Properties properties = messageId.Properties; DateTime?creationTime = messageId.Properties.CreationTime; properties.AbsoluteExpiryTime = new DateTime?(creationTime.Value + brokeredMessage.TimeToLive); } } if ((int)(brokeredMessage.InitializedMembers & BrokeredMessage.MessageMembers.ScheduledEnqueueTimeUtc) != 0 && brokeredMessage.ScheduledEnqueueTimeUtc > DateTime.MinValue) { messageId.MessageAnnotations.Map.Add("x-opt-scheduled-enqueue-time", brokeredMessage.ScheduledEnqueueTimeUtc); } if ((int)(brokeredMessage.InitializedMembers & BrokeredMessage.MessageMembers.Publisher) != 0 && brokeredMessage.Publisher != null) { messageId.MessageAnnotations.Map.Add("x-opt-publisher", brokeredMessage.Publisher); } if ((int)(brokeredMessage.InitializedMembers & BrokeredMessage.MessageMembers.PartitionKey) != 0 && brokeredMessage.PartitionKey != null) { messageId.MessageAnnotations.Map.Add("x-opt-partition-key", brokeredMessage.PartitionKey); } foreach (KeyValuePair <string, object> property in brokeredMessage.Properties) { object obj = null; if (!MessageConverter.TryGetAmqpObjectFromNetObject(property.Value, MappingType.ApplicationProperty, out obj)) { continue; } messageId.ApplicationProperties.Map.Add(property.Key, obj); } return(messageId); }