public static PublishRequest ToPublishRequest(this SnsPreparedMessage message)
 {
     return(new PublishRequest(message.Destination, message.Body)
     {
         MessageAttributes = message.MessageAttributes.ToDictionary(x => x.Key, x => new SnsMessageAttributeValue
         {
             DataType = x.Value.DataType,
             StringValue = x.Value.StringValue,
             BinaryValue = x.Value.BinaryValue,
         })
     });
 }
        async Task ApplyMulticastOperationMappingIfNecessary(MulticastTransportOperation transportOperation, SnsPreparedMessage snsPreparedMessage)
        {
            if (transportOperation == null || snsPreparedMessage == null)
            {
                return;
            }

            var existingTopicArn = await topicCache.GetTopicArn(transportOperation.MessageType).ConfigureAwait(false);

            snsPreparedMessage.Destination = existingTopicArn;
        }