protected override GetBackupFolderFilesResult GetBackupFilesInFolder(string folder, DateTime startDateOfRetentionRange)
        {
            var    backupFiles     = new GetBackupFolderFilesResult();
            string blobsNextMarker = null;
            bool   firstFileSet    = false;

            do
            {
                var blobs = _client.ListBlobs(folder, delimiter: null, listFolders: false, marker: blobsNextMarker);

                foreach (var blob in blobs.List)
                {
                    if (firstFileSet == false)
                    {
                        backupFiles.FirstFile = blob.Name;
                        firstFileSet          = true;
                    }

                    if (RestorePointsBase.TryExtractDateFromFileName(blob.Name, out var lastModified) && lastModified > startDateOfRetentionRange)
                    {
                        backupFiles.LastFile = blob.Name;
                        return(backupFiles);
                    }
                }

                blobsNextMarker = blobs.NextMarker;
                CancellationToken.ThrowIfCancellationRequested();
            } while (blobsNextMarker != null);

            return(backupFiles);
        }
        private bool GotFreshIncrementalBackup(GetBackupFolderFilesResult backupFiles, DateTime now)
        {
            if (backupFiles.LastFile == null)
            {
                return(false);
            }

            if (backupFiles.FirstFile.Equals(backupFiles.LastFile))
            {
                return(false);
            }

            if (RestorePointsBase.TryExtractDateFromFileName(backupFiles.LastFile, out var lastModified) == false)
            {
                lastModified = File.GetLastWriteTimeUtc(backupFiles.LastFile).ToLocalTime();
            }

            return(now - lastModified < _retentionPolicy.MinimumBackupAgeToKeep);
        }