public static async Task ListFolders(FolderModel root, ItemsController c) { var folders = await c.GetFolders(root, recursive : true); foreach (var folder in folders) { Console.WriteLine($"{folder.Id}: {folder.FullName}"); } }
private async Task EnsureInitialized() { if (_initialized) { return; } var folders = await _controller.GetFolders(_root, recursive : true); _foldersByPath = folders.ToDictionary(item => item.FullName, item => new FolderModel(item.Id, item.Name, item.Folder)); }
/// <remarks> /// This is overly optimistic (i.e. expects at least one photo per month), /// but is mildly more straightforward than lazily creating folders as we go. /// </remarks> public async Task CreateFolderForEachMonth(FolderModel root) { var years = await _controller.GetFolders(root); foreach (var year in years) { Console.WriteLine($"{year.Name}"); var folder = new FolderModel(year.Id, year.Name, root); var months = await _controller.GetFolders(folder); var missingMonths = ExpectedMonths.Except(months.Select(m => m.Name)); foreach (var month in missingMonths) { Console.WriteLine($"Creating {folder.FullName}/{month}"); await _controller.CreateFolder(month, folder); } } }