private void DeleteIfLatest(IConcurrentMetadataTextStore store, ConcurrentMetadata blob)
        {
            bool               deleted      = false;
            string             previousETag = null;
            ConcurrentMetadata currentItem;

            for (currentItem = blob;
                 !deleted && currentItem != null;
                 currentItem = store.ReadMetadata(blob.Id))
            {
                string currentETag = currentItem.ETag;

                // Prevent an infinite loop if _innerStore erroneously returns false from TryDelete when a retry won't
                // help. (The inner store should throw rather than return false in that case.)
                if (currentETag == previousETag)
                {
                    throw new InvalidOperationException("The operation stopped making progress.");
                }

                previousETag = currentETag;
                deleted      = _functionsStore.TryDelete(blob.Id, blob.ETag);
            }
        }
 public bool TryDelete(string id, string eTag)
 {
     return(_innerStore.TryDelete(id, eTag));
 }