using OneDriveBackupService.Models; namespace OneDriveBackupService.OneDrive; public sealed class OneDriveClient(ConfigData config) { public void UploadFile(string filePath) { Directory.CreateDirectory(config.BackupUploadRoot); var destFileName = Path.Combine(config.BackupUploadRoot, Path.GetFileName(filePath)); File.Move(filePath, destFileName); } public int DeleteOldFiles() { var directory = new DirectoryInfo(config.BackupUploadRoot); var filesToDelete = directory.EnumerateFiles() .Where(f => f.Name.StartsWith("backup_") && f.Name.EndsWith(".tar.gz")) .OrderByDescending(f => f.CreationTimeUtc) .Skip(config.KeepLast) .ToArray(); foreach (var file in filesToDelete) { file.Delete(); } return filesToDelete.Length; } }