public async Task Run() { var clearanceThreshold = DateTimeOffset.UtcNow.Add(_clearancePeriod); var outdatedFileReferences = await _repository.AsQueryable <FileReference>() .Where(x => (x.CreatedAt <= clearanceThreshold && !x.UploadConfirmed) || x.ScheduledToRemove) .ToListAsync(); foreach (var outdatedFileReference in outdatedFileReferences) { await _fileStorageClient.Remove(outdatedFileReference.ObjectKey); _repository.Delete(outdatedFileReference); } await _repository.SaveAsync(); }