示例#1
0
        public void SetRootProjectBuild(ProjectBuild rootProjectBuild)
        {
            List <ProjectBuild> projectBuilds = rootProjectBuild.GetAllMergedRealProjectBuilds().ToList();

            TimeSpan maxDuration = projectBuilds.Max(projectBuild => projectBuild.RealDuration);
            IEnumerable <ProjectSummary> buildTimelines =
                projectBuilds.Select(
                    projectBuild =>
                    new ProjectSummary
            {
                ProjectBuild  = projectBuild,
                Name          = Path.GetFileName(projectBuild.Name),
                Duration      = $"{projectBuild.RealDuration.TotalSeconds:0.00} s",
                DurationRatio = projectBuild.RealDuration.TotalSeconds / maxDuration.TotalSeconds,
            });

            this.ProjectSummaryListBox.Items.Clear();
            foreach (ProjectSummary ps in buildTimelines.OrderByDescending(x => x.DurationRatio))
            {
                this.ProjectSummaryListBox.Items.Add(ps);
            }
        }
示例#2
0
        public void SetRootProjectBuild(ProjectBuild rootProjectBuild)
        {
            IEnumerable <ProjectTimeline> projectTimelines =
                rootProjectBuild.GetAllMergedRealProjectBuilds()
                .Select(
                    projectBuild =>
                    new ProjectTimeline
            {
                ProjectBuild    = projectBuild,
                Name            = projectBuild.ShortName,
                RealWork        = projectBuild.RealWork,
                StartedAt       = projectBuild.StartedAt,
                CompletedAt     = projectBuild.CompletedAt,
                Duration        = $"{projectBuild.RealDuration.TotalSeconds:0.00} s",
                RootStartedAt   = rootProjectBuild.StartedAt,
                RootCompletedAt = rootProjectBuild.CompletedAt
            });

            this.ProjectTimelineListBox.Items.Clear();
            foreach (ProjectTimeline pt in projectTimelines.OrderBy(x => x.CompletedAt))
            {
                this.ProjectTimelineListBox.Items.Add(pt);
            }
        }