private static void HandleFiles(VaultClientFileColl fileColl, ChangeSetItemColl changes) { var diskPaths = fileColl.Cast <VaultClientFile>().Select(x => x.FullPath).ToList(); var statuses = ServerOperations.ProcessCommandStatus(diskPaths.ToArray()); var pathAndStatus = diskPaths.Zip(statuses, Tuple.Create); foreach (var(path, status) in pathAndStatus) { switch (status) { case WorkingFolderFileStatus.None: case WorkingFolderFileStatus.Edited: break; case WorkingFolderFileStatus.Missing: changes.AddRange(ServerOperations.ProcessCommandDelete(new[] { path })); Console.WriteLine($"Deleted {path} as it was {status}"); break; case WorkingFolderFileStatus.Renegade: ServerOperations.ProcessCommandCheckout(new[] { path }, false, false, new GetOptions()); Console.WriteLine($"Checked out {path} as it was {status}"); break; case WorkingFolderFileStatus.Merged: case WorkingFolderFileStatus.NeedsMerge: case WorkingFolderFileStatus.Unknown: case WorkingFolderFileStatus.MoreRecent: case WorkingFolderFileStatus.Old: Console.WriteLine($"Unhandled {path} with {status}"); break; default: throw new ArgumentOutOfRangeException(); } } }