private void DocumentDescriptorCleanup(DateTime checkDate)
        {
            var list = RecycleBin.Slots
                       .Where(x => x.DeletedAt < checkDate &&
                              x.Id.StreamId.StartsWith("DocumentDescriptor_"))
                       .Take(200)
                       .ToArray();

            foreach (var slot in list)
            {
                Logger.InfoFormat("Deleting slot {0} because it is in recyclebin and was deleted at {1}", slot.Id.StreamId, slot.DeletedAt);
                var blobIds = (BlobId[])slot.Data["files"];
                foreach (var blobId in blobIds.Distinct())
                {
                    Logger.InfoFormat("....deleting file {0}", blobId);
                    BlobStore.Delete(blobId);
                }

                RecycleBin.Purge(slot.Id);

                Logger.InfoFormat("....deleting stream {0}.{1}", slot.Id.BucketId, slot.Id.StreamId);
                Store.Advanced.DeleteStream(slot.Id.BucketId, slot.Id.StreamId);
                Logger.InfoFormat("Slot {0} deleted", slot.Id.StreamId);
            }
        }
        private void DocumentCleanup(DateTime checkDate)
        {
            var list = RecycleBin.Slots
                       .Where(x => x.DeletedAt < checkDate &&
                              x.Id.StreamId.StartsWith("Document_"))
                       .Take(200)
                       .ToArray();

            foreach (var slot in list)
            {
                Logger.InfoFormat("Deleting slot {0} because it is in recyclebin and was deleted at {1}", slot.Id.StreamId, slot.DeletedAt);

                RecycleBin.Purge(slot.Id);

                Logger.InfoFormat("....deleting stream {0}.{1}", slot.Id.BucketId, slot.Id.StreamId);
                Store.Advanced.DeleteStream(slot.Id.BucketId, slot.Id.StreamId);
                Logger.InfoFormat("Slot {0} deleted", slot.Id.StreamId);
            }
        }