/// <summary> /// Gets the projects. /// </summary> /// <param name="address">The address.</param> /// <returns> /// The projects from the server. /// </returns> public async Task <IList <ServerProjectTreeItem> > GetProjects(string address) { var result = new List <ServerProjectTreeItem>(); var server = this.GetServerManager().GetServer(address, false); var allProjects = await server.GetAllProjects(); var serverProjects = new List <ServerProjectTreeItem>(); foreach (var project in allProjects.CruiseControlProject) { var serverProjectTreeItem = new ServerProjectTreeItem(); serverProjectTreeItem.Name = project.Name; serverProjectTreeItem.Address = address; if (string.IsNullOrWhiteSpace(project.ServerName)) { result.Add(serverProjectTreeItem); } else { var serverProject = serverProjects.FirstOrDefault(s => s.Name == project.ServerName); if (serverProject == null) { serverProject = new ServerProjectTreeItem(); serverProject.Name = project.ServerName; serverProjects.Add(serverProject); result.Add(serverProject); } serverProject.ServerProjects.Add(serverProjectTreeItem); } } return(result); }
/// <summary> /// Adds single server project to the server projects list. /// </summary> /// <param name="parentList">The parent list.</param> /// <param name="jenkinsJobsItem">The new Jenkins Job Item.</param> /// <returns>The newly created server projects tree item.</returns> private ServerProjectTreeItem AddServerProject(IList <ServerProjectTreeItem> parentList, JenkinsJob jenkinsJobsItem) { var newServerProject = new ServerProjectTreeItem(); newServerProject.Address = jenkinsJobsItem.Url; newServerProject.Name = jenkinsJobsItem.Name; parentList.Add(newServerProject); return(newServerProject); }