Пример #1
0
        /// <summary>
        /// Finds the local path for a server file path
        /// </summary>
        /// <param name="workspace">The current TFS workspace</param>
        /// <param name="fileName">The TFS server path</param>
        /// <returns>The local file path</returns>
        public string GetLocalFilePathFromWorkspace(Microsoft.TeamFoundation.VersionControl.Client.Workspace workspace, string fileName)
        {
            if (workspace == null)
            {
                throw new ArgumentNullException("workspace");
            }

            return(workspace.GetLocalItemForServerItem(fileName));
        }
        internal static string Open(ExtendedItem item, Microsoft.TeamFoundation.VersionControl.Client.Workspace workspace)
        {
            using (var dialog = new RenameDialog(item))
            {
                if (dialog.Run(Xwt.Toolkit.CurrentEngine.WrapWindow(MessageService.RootWindow)) == Command.Ok)
                {
                    using (var progress = VersionControlService.GetProgressMonitor("Undo", VersionControlOperationType.Pull))
                    {
                        progress.BeginTask("Rename", 1);
                        List <Failure> failures;
                        if (item.ItemType == Microsoft.TeamFoundation.VersionControl.Client.Enums.ItemType.File)
                        {
                            workspace.PendRenameFile(item.LocalItem, dialog.NewPath, out failures);
                        }
                        else
                        {
                            workspace.PendRenameFolder(item.LocalItem, dialog.NewPath, out failures);
                        }

                        if (failures != null && failures.Any(f => f.SeverityType == Microsoft.TeamFoundation.VersionControl.Client.Enums.SeverityType.Error))
                        {
                            progress.EndTask();
                            foreach (var failure in failures.Where(f => f.SeverityType == Microsoft.TeamFoundation.VersionControl.Client.Enums.SeverityType.Error))
                            {
                                progress.ReportError(failure.Code, new Exception(failure.Message));
                            }
                            return(string.Empty);
                        }
                        progress.EndTask();
                        progress.ReportSuccess("Finish Undo");
                        return(dialog.NewPath);
                    }
                }
                return(string.Empty);
            }
        }