Skip to content

Commit

Permalink
add capability to use MessageModel as the input of the Azure Service …
Browse files Browse the repository at this point in the history
…Bus Sender
  • Loading branch information
jdevillard authored and sfmskywalker committed Jun 8, 2021
1 parent b858b82 commit f28c9a8
Showing 1 changed file with 35 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,12 @@ public static Message CreateMessage(IContentSerializer serializer, object messag
{
byte[] messageBytes;

if (message is string s)
if(message is MessageModel)
{
var messageModel = (MessageModel)message;
return CreateMessageFromMessageModel(messageModel);
}
else if (message is string s)
messageBytes = Encoding.UTF8.GetBytes(s);
else
{
Expand All @@ -35,5 +40,34 @@ public static Message CreateMessage(IContentSerializer serializer, object messag
return new Message(messageBytes);
}

private static Message CreateMessageFromMessageModel(MessageModel message)
{
var returnMessage = new Message(message.Body)
{
CorrelationId = message.CorrelationId,
ContentType = message.ContentType,
Label = message.Label,
To = message.To,
PartitionKey = message.PartitionKey,
ViaPartitionKey = message.ViaPartitionKey,
ReplyTo = message.ReplyTo,
SessionId = message.SessionId,
ReplyToSessionId = message.ReplyToSessionId,
};

if(message.MessageId != null)
returnMessage.MessageId = message.MessageId;
if(message.TimeToLive != null && message.TimeToLive > TimeSpan.Zero )
returnMessage.TimeToLive = message.TimeToLive;
if(message.ScheduledEnqueueTimeUtc != null)
returnMessage.ScheduledEnqueueTimeUtc = message.ScheduledEnqueueTimeUtc;

if (message.UserProperties != null)
foreach (var props in message.UserProperties)
returnMessage.UserProperties.Add(props.Key, props.Value);

return returnMessage;
}

}
}

0 comments on commit f28c9a8

Please sign in to comment.