internal static void Open(List <ExtendedItem> items, Microsoft.TeamFoundation.VersionControl.Client.Workspace workspace) { using (var dialog = new CheckOutDialog()) { dialog.FillStore(items); if (dialog.Run(Xwt.Toolkit.CurrentEngine.WrapWindow(MessageService.RootWindow)) == Command.Ok) { var itemsToCheckOut = dialog.SelectedItems; using (var progress = VersionControlService.GetProgressMonitor("Check Out", VersionControlOperationType.Pull)) { progress.BeginTask("Check Out", itemsToCheckOut.Count); foreach (var item in itemsToCheckOut) { var path = item.IsInWorkspace ? item.LocalItem : workspace.GetLocalPathForServerPath(item.ServerPath); workspace.Get(new GetRequest(item.ServerPath, RecursionType.Full, VersionSpec.Latest), GetOptions.None, progress); progress.Log.WriteLine("Check out item: " + item.ServerPath); var failures = workspace.PendEdit(new List <FilePath> { path }, RecursionType.Full, dialog.LockLevel); if (failures != null && failures.Any()) { if (failures.Any(f => f.SeverityType == SeverityType.Error)) { foreach (var failure in failures.Where(f => f.SeverityType == SeverityType.Error)) { progress.ReportError(failure.Code, new Exception(failure.Message)); } break; } foreach (var failure in failures.Where(f => f.SeverityType == SeverityType.Warning)) { progress.ReportWarning(failure.Message); } } } progress.EndTask(); progress.ReportSuccess("Finish Check Out."); } } } }
private void OnListItemClicked(object sender, RowActivatedArgs e) { TreeIter iter; if (!_listStore.GetIter(out iter, e.Path)) { return; } var item = (ExtendedItem)_listStore.GetValue(iter, 0); if (item.ItemType == ItemType.Folder) { ExpandPath(item.TargetServerItem); return; } if (item.ItemType == ItemType.File) { if (IsMapped(item.ServerPath)) { if (item.IsInWorkspace) { if (MonoDevelop.Projects.Services.ProjectService.IsWorkspaceItemFile(item.LocalItem)) { IdeApp.Workspace.OpenWorkspaceItem(item.LocalItem, true); } else { IdeApp.Workbench.OpenDocument(item.LocalItem, null, true); } } else { var filePath = this.DownloadItemToTemp(item); if (MonoDevelop.Projects.Services.ProjectService.IsWorkspaceItemFile(filePath)) { var parentFolder = _currentWorkspace.GetExtendedItem(item.ServerPath.ParentPath, ItemType.Folder); if (parentFolder == null) { return; } GetLatestVersion(new List <ExtendedItem> { parentFolder }); var futurePath = _currentWorkspace.GetLocalPathForServerPath(item.ServerPath); IdeApp.Workspace.OpenWorkspaceItem(futurePath, true); FileHelper.FileDelete(filePath); } else { IdeApp.Workbench.OpenDocument(filePath, null, null); } } } else { var filePath = this.DownloadItemToTemp(item); IdeApp.Workbench.OpenDocument(filePath, null, true); } } }