示例#1
0
        public ProjectBuildQueue GetQueue()
        {
            if (_cachedQueue != null)
            {
                return(_cachedQueue);
            }

            var request = new HudsonQueueRequest();

            var response          = QueueRepository.Get(request);
            var projectBuildQueue = response.Items
                                    .Where(build => build.Task != null)
                                    .Select(build => GetProject(build.Task.Name));

            _cachedQueue = ProjectBuildQueueMapper.FromHudsonAPI(projectBuildQueue);

            return(_cachedQueue);
        }
        public static Project FromHudsonAPI(HudsonFreeStyleProjectResponse response, BuildJob lastbuild, BuildJob successfulbuild, BuildJob completedbuild, BuildJob currentbuild, IEnumerable <Project> upstreamProjects, IEnumerable <Project> downstreamProjects, ProjectBuildQueue queue)
        {
            var projectname = response.Name;

            var progress = 0;

            if (currentbuild.IsBuilding)
            {
                progress = GetPercentageProgress(currentbuild.Timestamp, successfulbuild.Duration);
            }

            var position = queue.Items.ToList().FindIndex(x => x.Name == projectname) + 1;

            return(new Project(projectname, lastbuild, successfulbuild, completedbuild, currentbuild, progress, position, upstreamProjects, downstreamProjects));
        }