private async Task DeleteStaleBackupsAsync() { var instanceName = InstanceName.FromProjectInstance(ProjectId, InstanceId); var backups = DatabaseAdminClient.ListBackups(instanceName, pageSize: 200).ToList(); if (backups.Count < 50) { return; } var deleteCount = Math.Max(30, backups.Count - 50); var backupsToDelete = backups .OrderBy(db => long.TryParse( db.BackupName.BackupId.Replace("my-enc-backup-", ""), out long creationDate) ? creationDate : long.MaxValue) .Take(deleteCount); // Delete the backups. foreach (var backup in backupsToDelete) { try { await DatabaseAdminClient.DeleteBackupAsync(backup.BackupName); } catch (Exception) { } } }