public Project GetProject(string projectName) { var cachedProject = _cachedProjects.Where(x => x.Name == projectName).FirstOrDefault(); if (cachedProject != null) { return(cachedProject); } var request = new HudsonProjectRequest { Name = projectName }; var response = ProjectRepository.Get(request); BuildJob lastbuild = new NullBuildJob(); if (response.LastCompletedBuild.Count > 0) { lastbuild = GetBuild(response.Name, response.LastCompletedBuild.First().Number); } BuildJob successfulbuild = new NullBuildJob(); if (response.LastSuccessfulBuild.Count > 0) { successfulbuild = GetBuild(response.Name, response.LastSuccessfulBuild.First().Number); } BuildJob completedbuild = new NullBuildJob(); if (response.LastCompletedBuild.Count > 0) { successfulbuild = GetBuild(response.Name, response.LastCompletedBuild.First().Number); } BuildJob currentbuild = new NullBuildJob(); if (response.LastBuild.Count > 0) { successfulbuild = GetBuild(response.Name, response.LastBuild.First().Number); } var upstreamProjects = response.UpstreamProjects .Select(x => GetProject(x.Name)); var downstreamProjects = response.DownstreamProjects .Select(x => GetProject(x.Name)); var queue = GetQueue(); var project = ProjectMapper.FromHudsonAPI(response, lastbuild, successfulbuild, completedbuild, currentbuild, upstreamProjects, downstreamProjects, queue); _cachedProjects.Add(project); return(project); }
public Project GetProject(string projectName) { var cachedProject = _cachedProjects.Where(x => x.Name == projectName).FirstOrDefault(); if (cachedProject != null) return cachedProject; var request = new HudsonProjectRequest { Name = projectName }; var response = ProjectRepository.Get(request); BuildJob lastbuild = new NullBuildJob(); if (response.LastCompletedBuild.Count > 0) lastbuild = GetBuild(response.Name, response.LastCompletedBuild.First().Number); BuildJob successfulbuild = new NullBuildJob(); if (response.LastSuccessfulBuild.Count > 0) successfulbuild = GetBuild(response.Name, response.LastSuccessfulBuild.First().Number); BuildJob completedbuild = new NullBuildJob(); if (response.LastCompletedBuild.Count > 0) successfulbuild = GetBuild(response.Name, response.LastCompletedBuild.First().Number); BuildJob currentbuild = new NullBuildJob(); if (response.LastBuild.Count > 0) successfulbuild = GetBuild(response.Name, response.LastBuild.First().Number); var upstreamProjects = response.UpstreamProjects .Select(x => GetProject(x.Name)); var downstreamProjects = response.DownstreamProjects .Select(x => GetProject(x.Name)); var queue = GetQueue(); var project = ProjectMapper.FromHudsonAPI(response, lastbuild, successfulbuild, completedbuild, currentbuild, upstreamProjects, downstreamProjects, queue); _cachedProjects.Add(project); return project; }