public static IOutgoingLogicalMessageContext CreateOutgoingLogicalMessageContext(this StageConnector<IOutgoingPublishContext, IOutgoingLogicalMessageContext> stageConnector, OutgoingLogicalMessage outgoingMessage, IReadOnlyCollection<RoutingStrategy> routingStrategies, IOutgoingPublishContext sourceContext)
{
Guard.AgainstNull(nameof(outgoingMessage), outgoingMessage);
Guard.AgainstNull(nameof(routingStrategies), routingStrategies);
Guard.AgainstNull(nameof(sourceContext), sourceContext);
return new OutgoingLogicalMessageContext(
sourceContext.MessageId,
sourceContext.Headers,
outgoingMessage,
routingStrategies,
sourceContext);
}