public static bool CheckSettings() { var settings = MySettingsManager.GetSettings <TfsSettings>(); if (string.IsNullOrEmpty(settings.ProjectName) || string.IsNullOrEmpty(settings.WorkItemType)) { return(false); } var uri = new Uri(settings.ProjectCollectionUri); try { var project = TfsHelper.GetProject(settings.ProjectCollectionUri, settings.ProjectName); var workItemType = project.WorkItemTypes[settings.WorkItemType]; if (workItemType == null) { return(false); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Failed to connect to TFS", MessageBoxButton.OK, MessageBoxImage.Error); return(false); } var registered = RegisteredTfsConnections.GetProjectCollection(uri); if (registered == null) { RegisteredTfsConnections.RegisterProjectCollection(new TfsTeamProjectCollection(uri)); } return(true); }
public static bool TryGetTeamProjectCollection(string localPath, ref Uri tfsName, out string tfsFolder) { tfsFolder = null; if (tfsName == null) { var projectCollections = RegisteredTfsConnections.GetProjectCollections(); if (projectCollections != null && projectCollections.Length == 1) { tfsName = projectCollections[0].Uri; } else { using (var dlg = new TeamProjectPicker(TeamProjectPickerMode.NoProject, false)) { dlg.AcceptButtonText = "Select"; if (dlg.ShowDialog() != DialogResult.OK) { return(false); } tfsName = dlg.SelectedTeamProjectCollection.Uri; } } } var workspace = GetWorkspace(tfsName, localPath); if (workspace == null || !workspace.IsLocalPathMapped(localPath)) { return(false); } tfsFolder = workspace.GetServerItemForLocalItem(localPath); return(true); }
public static List <ProjectItem> GetPendingChanges() { var projectItems = new List <ProjectItem>(); var dte = (DTE)Package.GetGlobalService(typeof(SDTE)); var projectCollections = new List <RegisteredProjectCollection>(RegisteredTfsConnections.GetProjectCollections()); foreach (var registeredProjectCollection in projectCollections) { var projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(registeredProjectCollection); var versionControl = projectCollection.GetService <VersionControlServer>(); var workspace = versionControl.GetWorkspace(dte.Solution.FileName); foreach (var pendingChange in workspace.GetPendingChangesEnumerable()) { if (pendingChange.FileName != null && (pendingChange.FileName.EndsWith(".cs") || pendingChange.FileName.EndsWith(".config"))) { var projectItem = dte.Solution.FindProjectItem(pendingChange.FileName); if (projectItem != null) { projectItems.Add(projectItem); } } } } return(projectItems); }
public override void EnsureAuthenticated() { if (string.IsNullOrEmpty(Url)) { _server = null; } else { Uri uri; if (!Uri.IsWellFormedUriString(Url, UriKind.Absolute)) { // maybe it is not an Uri but instance name var servers = RegisteredTfsConnections.GetConfigurationServers(); var registered = servers.FirstOrDefault(s => String.Compare(s.Name, Url, StringComparison.OrdinalIgnoreCase) == 0); if (registered == null) { throw new GitTfsException("Given tfs name is not correct URI and not found as a registered TFS instance"); } uri = registered.Uri; } else { uri = new Uri(Url); } _server = HasCredentials ? new TfsTeamProjectCollection(uri, GetCredential(), new UICredentialsProvider()) : new TfsTeamProjectCollection(uri, new UICredentialsProvider()); _server.EnsureAuthenticated(); } }
/// <summary> ///if no connection is estblished, connect to the first registered server /// </summary> public void ConnectToFirstServerInList() { RegisteredProjectCollection[] tfsList = RegisteredTfsConnections.GetProjectCollections(); if (tfsList.Length > 0) { var tfsUri = tfsList[0].Uri; ConnectToTfsServer(tfsUri); } }
private MainWindowViewModel() { this.AvailableTeamProjectCollectionUrls = RegisteredTfsConnections.GetProjectCollections().Select(c => c.Uri.ToString()).OrderBy(u => u).ToArray(); this.TeamProjectCollectionUrl = this.AvailableTeamProjectCollectionUrls.FirstOrDefault(); this.Nodes = new ObservableCollection <StorageTreeNode>(); this.RefreshContainersCommand = new RelayCommand(RefreshContainers, CanRefreshContainers); this.DownloadSelectedFilesCommand = new RelayCommand(DownloadSelectedFiles, CanDownloadSelectedFiles); this.StatusText = "Ready"; }
/// <inheritdoc/> protected override void DoProcessRecord() { if (Server.Equals("localhost", StringComparison.OrdinalIgnoreCase) || Server.Equals(".")) { Server = Environment.MachineName; } WriteObject(RegisteredTfsConnections.GetConfigurationServers().Where(s => s.Name.IsLike(Server)), true); }
private void RefreshTeamProjectCollections(string selectedTeamProjectCollectionName) { try { this.TeamProjectCollections = RegisteredTfsConnections.GetProjectCollections().Select(c => new TeamProjectCollectionInfo(c.Name, c.Uri)); this.SelectedTeamProjectCollection = this.TeamProjectCollections.FirstOrDefault(t => t.Name == selectedTeamProjectCollectionName); } catch (Exception exc) { Logger.Log("An unexpected exception occurred while retrieving the Team Project Collections", exc); } }
private void AddTeamProjectCollection(object argument) { using (var dialog = new TeamProjectPicker(TeamProjectPickerMode.NoProject, false)) { var result = dialog.ShowDialog(Application.Current.MainWindow.GetIWin32Window()); if (result == System.Windows.Forms.DialogResult.OK) { var projectCollection = dialog.SelectedTeamProjectCollection; RegisteredTfsConnections.RegisterProjectCollection(projectCollection); RefreshTeamProjectCollections(projectCollection.Name); } } }
public MainWindowViewModel() { this.GetAllEventSubscriptionsCommand = new RelayCommand(GetAllEventSubscriptions, CanGetAllEventSubscriptions); this.DeleteSelectedEventSubscriptionsCommand = new RelayCommand(DeleteSelectedEventSubscriptions, CanDeleteSelectedEventSubscriptions); this.GetEventJobHistoryCommand = new RelayCommand(GetEventJobHistory, CanGetEventJobHistory); this.GetNotificationJobLogLevelCommand = new RelayCommand(GetNotificationJobLogLevel, CanGetNotificationJobLogLevel); this.SetNotificationJobLogLevelCommand = new RelayCommand(SetNotificationJobLogLevel, CanSetNotificationJobLogLevel); this.AvailableTeamProjectCollectionUrls = RegisteredTfsConnections.GetProjectCollections().Select(c => c.Uri.ToString()).OrderBy(u => u).ToArray(); this.TeamProjectCollectionUrl = this.AvailableTeamProjectCollectionUrls.FirstOrDefault(); this.EventSubscriptions = new ObservableCollection <Subscription>(); this.EventJobHistoryEntries = new ObservableCollection <TeamFoundationJobHistoryEntry>(); SetStatus(string.Format(CultureInfo.CurrentCulture, "Discovered {0} registered Team Project Collection(s).", this.AvailableTeamProjectCollectionUrls.Count)); }
//public static WorkspaceInfo GetWorkspaceInfo() //{ // //// Get Project Collections // //var pc = RegisteredTfsConnections.GetProjectCollections(); // //result.AppendLine("Registered Projects"); // //foreach (var item in pc) // //{ // // result.AppendLine(String.Format("Name: {0}, Uri: {1}, Offline: {2}", // // item.DisplayName, item.Uri.ToString(), item.Offline)); // //} // try // { // var info = Workstation.Current.GetAllLocalWorkspaceInfo(); // if (info.Any()) // return info.FirstOrDefault(); // } // catch (Exception) // { // } // return null; //} public static IEnumerable <RegisteredProjectCollection> GetProjectCollections() { try { // Get Project Collections var pc = RegisteredTfsConnections.GetProjectCollections(); return(pc.ToList()); } catch (Exception ex) { } return(null); }
private static Workspace GetWorkspace(string slnDir) { if (_table.Contains(slnDir)) { return(_table[slnDir] as Workspace); } var projectCollections = new List <RegisteredProjectCollection>((RegisteredTfsConnections.GetProjectCollections())); var onlineCollections = projectCollections.Where(c => c.Offline == false); // fail if there are no registered collections that are currently on-line if (!onlineCollections.Any()) { _table.Add(slnDir, null); return(null); } Workspace workspace = null; // find a project collection with at least one team project foreach (var registeredProjectCollection in onlineCollections) { var projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(registeredProjectCollection); var versionControl = (VersionControlServer)projectCollection.GetService(typeof(VersionControlServer)); var teamProjects = new List <TeamProject>(versionControl.GetAllTeamProjects(false)); // if there are no team projects in this collection, skip it if (teamProjects.Count < 1) { continue; } var dir = new DirectoryInfo(slnDir); while (workspace == null) { workspace = versionControl.TryGetWorkspace(dir.FullName); if (dir.Parent == null) { break; } dir = dir.Parent; } if (workspace != null && workspace.HasUsePermission) { break; } } _table.Add(slnDir, workspace); return(workspace); }
public override DataTable GetDataSources() { var dataTable = new DataTable(); dataTable.Columns.Add("ServerName", typeof(string)); dataTable.Columns.Add("InstanceName", typeof(string)); var projectCollections = RegisteredTfsConnections.GetProjectCollections(); foreach (var projectCollection in projectCollections) { dataTable.Rows.Add(new object[] { projectCollection.Uri, null }); } return(dataTable); }
private void RefreshTfsServers() { //// TODO: [VM] Allow user to enter custom server URI this.ServerMenu.Items.Clear(); var tfsCollections = RegisteredTfsConnections .GetProjectCollections() .OrderBy(item => item.Name, StringComparer.OrdinalIgnoreCase) .ThenBy(item => item.Uri) .ToList(); MenuItem firstItem = null; foreach (var tfsCollection in tfsCollections) { var serverItem = new MenuItem { Header = tfsCollection.Name, ToolTip = tfsCollection.Uri.AbsoluteUri, IsCheckable = false, // Should not be checked/unchecked automatically Tag = new TfsServerInfo(tfsCollection) }; serverItem.Click += this.ServerItem_Click; firstItem = firstItem ?? serverItem; this.ServerMenu.Items.Add(serverItem); } SelectServer(firstItem); if (!this.ServerMenu.HasItems) { this.ServerMenu.Items.Add( new MenuItem { Header = "No registered servers found.", IsEnabled = false }); } }
private void LoadServerList() { this.cboTfsServer.DataSource = RegisteredTfsConnections.GetProjectCollections(); this.cboTfsServer.DisplayMember = "Uri"; }
/// <summary> /// Performs the actual long running work /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void _background_DoWork(object sender, DoWorkEventArgs e) { RegisteredProjectCollection[] collections = RegisteredTfsConnections.GetProjectCollections(); e.Result = collections; }
public RegisteredProjectCollection[] GetRegisteredProjectCollections() { this.Logger().Trace("GetRegisteredProjectCollections"); return(RegisteredTfsConnections.GetProjectCollections()); }