/// <summary> /// Gets a project list from given jenkins server address. /// </summary> /// <param name="address">The server address.</param> /// <param name="serverProjects">The list of projects to update.</param> /// <param name="jenkinsApi">Jenkins Api instance.</param> /// <returns>A task representing the job.</returns> private async Task GetProjectsLists(string address, List <ServerProjectTreeItem> serverProjects, JenkinsApi jenkinsApi) { var jenkinsJobs = await jenkinsApi.GetJenkinsJobs(address, default(System.Threading.CancellationToken)); foreach (var jenkinsJob in jenkinsJobs.Jobs) { var newServerProject = this.AddServerProject(serverProjects, jenkinsJob); if (string.Equals(jenkinsJob.ClassName.Trim(), "com.cloudbees.hudson.plugins.folder.Folder".Trim(), System.StringComparison.InvariantCultureIgnoreCase) || string.Equals(jenkinsJob.ClassName.Trim(), "org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject".Trim(), System.StringComparison.InvariantCultureIgnoreCase)) { await this.GetProjectsLists(jenkinsJob.Url, newServerProject.ServerProjects, jenkinsApi); } } }
/// <summary> /// Gets a project list from given jenkins server address. /// </summary> /// <param name="address">The server address.</param> /// <param name="projects">The list of projects to update.</param> /// <param name="jenkinsApi">Jenkins Api instance.</param> /// <returns>A task representing the job.</returns> private async Task GetProjectsLists(string address, IList <Project> projects, JenkinsApi jenkinsApi) { var jenkinsJobs = await jenkinsApi.GetJenkinsJobs(address, default); if (jenkinsJobs?.Jobs == null) { return; } foreach (var jenkinsJob in jenkinsJobs.Jobs) { var newServerProject = this.AddProject(projects, jenkinsJob); if (string.Equals(jenkinsJob.ClassName.Trim(), "com.cloudbees.hudson.plugins.folder.Folder".Trim(), System.StringComparison.InvariantCultureIgnoreCase) || string.Equals(jenkinsJob.ClassName.Trim(), "org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject".Trim(), System.StringComparison.InvariantCultureIgnoreCase)) { await this.GetProjectsLists(jenkinsJob.Url, newServerProject.Children, jenkinsApi); } } }