/// <summary> /// Gets the projects. /// </summary> /// <param name="address">The address.</param> /// <returns> /// The projects from the server. /// </returns> public override async Task <IList <Project> > GetProjects(string address) { var result = new List <Project>(); var server = CruiseControlManager.GetServer(address, false); var allProjects = await server.GetAllProjects(); var serverProjects = new List <Project>(); foreach (var project in allProjects.CruiseControlProject) { var serverProjectTreeItem = new Project(address, project.Name); if (string.IsNullOrWhiteSpace(project.ServerName)) { result.Add(serverProjectTreeItem); } else { var serverProject = serverProjects.FirstOrDefault(s => s.Name == project.ServerName); if (serverProject == null) { serverProject = new Project(null, project.ServerName); serverProjects.Add(serverProject); result.Add(serverProject); } serverProject.Children.Add(serverProjectTreeItem); serverProjectTreeItem.Parent = serverProject; } } return(result); }
protected override async Task <Status> GetCurrentStatus(CancellationToken cancellationToken) { var server = CruiseControlManager.GetServer(this.Address); var projectData = await server.GetProjectStatus(cancellationToken, this.Project, 5); if (projectData == null) { return(null); } log.Trace("Retrieved status for cruise control project {project}: {@projectData}", this.Project, projectData); return(this.CreateStatus(projectData)); }
protected override async Task <List <Status> > GetHistory(CancellationToken cancellationToken) { var server = CruiseControlManager.GetServer(this.Address); var history = new List <Status>(); var builds = await server.GetBuilds(this.Project); foreach (var build in builds) { history.Add(CreateStatus(build)); } return(history); }
/// <summary> /// Gets the projects. /// </summary> /// <param name="address">The address.</param> /// <returns> /// The projects from the server. /// </returns> public override async Task <IList <Project> > GetProjects(string address) { var result = new List <Project>(); var server = CruiseControlManager.GetServer(address, false); CruiseControlJobs allProjects = null; try { allProjects = await server.GetAllProjects(); } catch (Exception ex) { throw ex; } if (allProjects == null) { throw new Exception(); } var serverProjects = new List <Project>(); foreach (var project in allProjects.CruiseControlProject) { var serverProjectTreeItem = new Project(address, project.Name, address + "server/" + project.ServerName + "/project/" + project.Name + "/ViewProjectReport.aspx"); if (string.IsNullOrWhiteSpace(project.ServerName)) { result.Add(serverProjectTreeItem); } else { var serverProject = serverProjects.FirstOrDefault(s => s.Name == project.ServerName); if (serverProject == null) { serverProject = new Project(null, project.ServerName, address + "server/" + project.ServerName + "/viewServerReport.aspx", project.Name, address + "server/" + project.ServerName + "/project/" + project.Name); serverProjects.Add(serverProject); result.Add(serverProject); } serverProject.Children.Add(serverProjectTreeItem); serverProjectTreeItem.Parent = serverProject; } } return(result); }
protected override async Task <Status> GetCurrentStatus(CancellationToken cancellationToken) { var server = CruiseControlManager.GetServer(this.directAddress); var projectData = await server.GetProjectStatus(cancellationToken, this.Project, 5); if (projectData == null) { if (await this.CheckServerURL() == false) { var status = new Status(); status.ErrorMessage = "Server not available"; status.InvalidBuild = true; return(status); } else if (await this.CheckProjectURL() == false) { var status = new Status(); status.ErrorMessage = "Project not available"; status.InvalidBuild = true; return(status); } } if (projectData == null) { var status = new Status(); status.ErrorMessage = "Project not available"; status.InvalidBuild = true; return(status); } if (projectData.LastBuildLabel == null) { var status = new Status(); status.ErrorMessage = "No builds yet"; status.InvalidBuild = true; return(status); } log.Trace("Retrieved status for cruise control project {project}: {@projectData}", this.Project, projectData); return(this.CreateStatus(projectData)); }