示例#1
0
        internal static global::Azure.Messaging.ServiceBus.ServiceBusMessage BuildMessage(IActorMessage msg)
        {
            byte[] msgBytes = TempSerialization.GetBytes <MsgType>(msg);

            var message = new global::Azure.Messaging.ServiceBus.ServiceBusMessage(msgBytes);

            if (msg is IServiceBusMessagePropertiesProvider)
            {
                message.ScheduledEnqueueTime = (msg as IServiceBusMessagePropertiesProvider).ScheduledEnqueueTimeUtc.HasValue ? (msg as IServiceBusMessagePropertiesProvider).ScheduledEnqueueTimeUtc.Value : message.ScheduledEnqueueTime;
                message.TimeToLive           = (msg as IServiceBusMessagePropertiesProvider).TimeToLive.HasValue ? (msg as IServiceBusMessagePropertiesProvider).TimeToLive.Value : message.TimeToLive;
                message.ContentType          = (msg as IServiceBusMessagePropertiesProvider).ContentType ?? message.ContentType;
                message.CorrelationId        = (msg as IServiceBusMessagePropertiesProvider).CorrelationId ?? message.CorrelationId;
                message.ReplyToSessionId     = (msg as IServiceBusMessagePropertiesProvider).ReplyToSessionId ?? message.ReplyToSessionId;
                message.SessionId            = (msg as IServiceBusMessagePropertiesProvider).SessionId ?? message.SessionId;
                message.MessageId            = (msg as IServiceBusMessagePropertiesProvider).MessageId ?? message.MessageId;
                message.PartitionKey         = (msg as IServiceBusMessagePropertiesProvider).PartitionKey ?? message.PartitionKey;
                if (null != (msg as IServiceBusMessagePropertiesProvider).ApplicationProperties)
                {
                    foreach (var t in (msg as IServiceBusMessagePropertiesProvider).ApplicationProperties)
                    {
                        message.ApplicationProperties.Add(t);
                    }
                }
            }

            if ((message is IActorMessageIdentifier) && String.IsNullOrWhiteSpace(message.MessageId))
            {
                message.MessageId = (msg as IActorMessageIdentifier).Id;
            }

            return(message);
        }
示例#2
0
        internal static DirectoryQueueMessage BuildMessage(IActorMessage msg)
        {
            DirectoryQueueMessage cloudMessage = new DirectoryQueueMessage();

            byte[] msgBytes = TempSerialization.GetBytes <MsgType>(msg);
            cloudMessage.SetMessageContent(msgBytes);
            return(cloudMessage);
        }
示例#3
0
 internal static EventData BuildMessage <MsgType>(IActorMessage msg) where MsgType : class
 {
     byte[] msgBytes = TempSerialization.GetBytes <MsgType>(msg);
     return(new EventData(msgBytes));
 }
示例#4
0
 internal static BinaryData BuildMessage(IActorMessage msg)
 {
     byte[] msgBytes = TempSerialization.GetBytes <MsgType>(msg);
     return(BinaryData.FromString(Convert.ToBase64String(msgBytes)));
 }