Beispiel #1
0
        /// <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);
        }
Beispiel #4
0
        /// <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);
        }
Beispiel #5
0
        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));
        }