private IEnumerable<Tuple<CloudQueueMessage, TimeSpan?>> ConvertInboundMessagesToOutbound(IEnumerable<CloudQueueMessage> inboundMessages)
{
foreach(CloudQueueMessage inboundMessage in inboundMessages)
{
if(inboundMessage.DequeueCount > 1)
this.LogWarning("Message {0} from queue \"{1}\" has been dequeued before {2} times.", inboundMessage.Id, this.SourceQueue.Queue.Name, inboundMessage.DequeueCount);
TimeSpan? ttl = inboundMessage.ExpirationTime == null ? (TimeSpan?)null : inboundMessage.ExpirationTime.Value - DateTimeOffset.Now;
CloudQueueMessage outboundMessage = new CloudQueueMessage(inboundMessage.AsBytes);
yield return new Tuple<CloudQueueMessage, TimeSpan?>(outboundMessage, ttl);
}
}