Example #1
0
 public static void UpdateAmqpMessageHeadersAndProperties(AmqpMessage message, BrokeredMessage brokeredMessage, bool amqpClient)
 {
     BrokeredMessage.MessageMembers initializedMembers = brokeredMessage.InitializedMembers;
     if ((int)(initializedMembers & BrokeredMessage.MessageMembers.DeliveryCount) != 0)
     {
         message.Header.DeliveryCount = new uint?((uint)(brokeredMessage.DeliveryCount - (amqpClient ? 1 : 0)));
     }
     if ((int)(initializedMembers & BrokeredMessage.MessageMembers.TimeToLive) != 0 && brokeredMessage.TimeToLive != TimeSpan.MaxValue)
     {
         message.Header.Ttl = new uint?((uint)brokeredMessage.TimeToLive.TotalMilliseconds);
     }
     if ((int)(initializedMembers & BrokeredMessage.MessageMembers.EnqueuedTimeUtc) != 0)
     {
         message.MessageAnnotations.Map["x-opt-enqueued-time"] = brokeredMessage.EnqueuedTimeUtc;
     }
     if ((int)(initializedMembers & BrokeredMessage.MessageMembers.SequenceNumber) != 0)
     {
         message.MessageAnnotations.Map["x-opt-sequence-number"] = brokeredMessage.SequenceNumber;
     }
     if (amqpClient && (int)(initializedMembers & BrokeredMessage.MessageMembers.LockedUntilUtc) != 0)
     {
         message.MessageAnnotations.Map["x-opt-locked-until"] = brokeredMessage.LockedUntilUtc;
     }
     if (amqpClient && (int)(initializedMembers & BrokeredMessage.MessageMembers.Publisher) != 0)
     {
         message.MessageAnnotations.Map["x-opt-publisher"] = brokeredMessage.Publisher;
     }
     if (amqpClient && (int)(initializedMembers & BrokeredMessage.MessageMembers.PartitionKey) != 0)
     {
         message.MessageAnnotations.Map["x-opt-partition-key"] = brokeredMessage.PartitionKey;
     }
     if (brokeredMessage.ArePropertiesModifiedByBroker && brokeredMessage.Properties.Count > 0)
     {
         if (message.ApplicationProperties == null)
         {
             message.ApplicationProperties = new ApplicationProperties();
         }
         foreach (KeyValuePair <string, object> property in brokeredMessage.Properties)
         {
             object obj = null;
             if (!MessageConverter.TryGetAmqpObjectFromNetObject(property.Value, MappingType.ApplicationProperty, out obj))
             {
                 continue;
             }
             message.ApplicationProperties.Map[property.Key] = obj;
         }
     }
 }
Example #2
0
 private static void UpdateAmqpMessageHeadersAndProperties(BrokeredMessage source, AmqpMessage target, SerializationTarget serializationTarget)
 {
     MessageConverter.UpdateAmqpMessageHeadersAndProperties(target, source, false);
     BrokeredMessage.MessageMembers initializedMembers = source.InitializedMembers;
     if ((int)(initializedMembers & BrokeredMessage.MessageMembers.PrefilteredHeaders) != 0)
     {
         target.DeliveryAnnotations.Map["x-opt-prefiltered-headers"] = MessageConverter.ReadStream(source.PrefilteredHeaders);
     }
     if ((int)(initializedMembers & BrokeredMessage.MessageMembers.PrefilteredProperties) != 0)
     {
         target.DeliveryAnnotations.Map["x-opt-prefiltered-properties"] = MessageConverter.ReadStream(source.PrefilteredProperties);
     }
     if ((int)(initializedMembers & BrokeredMessage.MessageMembers.TransferDestination) != 0)
     {
         target.DeliveryAnnotations.Map["x-opt-transfer-destination"] = source.TransferDestination;
     }
     if ((int)(initializedMembers & BrokeredMessage.MessageMembers.TransferSource) != 0)
     {
         target.DeliveryAnnotations.Map["x-opt-transfer-source"] = source.TransferSource;
     }
     if ((int)(initializedMembers & BrokeredMessage.MessageMembers.TransferSequenceNumber) != 0)
     {
         target.DeliveryAnnotations.Map["x-opt-transfer-sn"]      = source.TransferSequenceNumber;
         target.DeliveryAnnotations.Map["x-opt-transfer-session"] = source.SessionId;
     }
     if ((int)(initializedMembers & BrokeredMessage.MessageMembers.TransferHopCount) != 0)
     {
         target.DeliveryAnnotations.Map["x-opt-transfer-hop-count"] = source.TransferHopCount;
     }
     if ((int)(initializedMembers & BrokeredMessage.MessageMembers.TransferDestinationEntityId) != 0)
     {
         target.DeliveryAnnotations.Map["x-opt-transfer-resource"] = source.TransferDestinationResourceId;
     }
     if (serializationTarget == SerializationTarget.Communication && (int)(initializedMembers & BrokeredMessage.MessageMembers.LockToken) != 0)
     {
         target.DeliveryAnnotations.Map["x-opt-lock-token"]  = source.LockToken;
         target.MessageAnnotations.Map["x-opt-locked-until"] = source.LockedUntilUtc;
     }
 }