/// <summary> /// Constructor. /// </summary> public BuildViewModel( BuildResult buildResult, IList <UnreadFeedbackResult> unreadFeedback, Func <Model.Projects.Build, string> commitUrlBuilder, Func <TestResult, string> testUrlBuilder, Func <string, string, int, string> feedbackUrlBuilder, ITimeZoneProvider timeZoneProvider) { User = buildResult.Build.Commit.User; Submissions = new CheckpointSubmissionsViewModel ( buildResult.Submissions, timeZoneProvider ); PushDateLong = buildResult.Build.Commit.PushDate.FormatLongDateTime(timeZoneProvider); PushDateShort = buildResult.Build.Commit.PushDate.FormatShortDateTime(timeZoneProvider); CommitMessage = buildResult.Build.Commit.Message; CommitSha = buildResult.Build.Commit.Sha; CommitUrl = commitUrlBuilder(buildResult.Build); BuildStatus = buildResult.Build.Status; BuildDuration = buildResult.Build.DateCompleted - buildResult.Build.DateStarted; BuildOutput = buildResult.Build.Output; TestClassResults = TestClassTableEntry.GetTestClassResults ( null /*checkpoint*/, buildResult.Build, testUrlBuilder ); IsLatestBuild = buildResult.LatestBuild; TestTrend = buildResult.Build.Status == BuildStatus.Completed ? new TestTrendViewModel ( buildResult.AllBuildTestCounts, buildResult.Build.Commit.Project.Name, buildResult.Build, false /*thumbnail*/, timeZoneProvider ) : null; UnreadFeedback = unreadFeedback.Select ( uf => new UnreadFeedbackViewModel ( uf, feedbackUrlBuilder, timeZoneProvider ) ).ToList(); }
/// <summary> /// Constructor. /// </summary> public BuildViewModel( BuildResult buildResult, IList<UnreadFeedbackResult> unreadFeedback, Func<Model.Projects.Build, string> commitUrlBuilder, Func<TestResult, string> testUrlBuilder, Func<string, string, int, string> feedbackUrlBuilder, ITimeZoneProvider timeZoneProvider) { User = buildResult.Build.Commit.User; Submissions = new CheckpointSubmissionsViewModel ( buildResult.Submissions, timeZoneProvider ); PushDate = buildResult.Build.Commit.PushDate; CommitMessage = buildResult.Build.Commit.Message; CommitSha = buildResult.Build.Commit.Sha; CommitUrl = commitUrlBuilder(buildResult.Build); BuildStatus = buildResult.Build.Status; BuildDuration = buildResult.Build.DateCompleted - buildResult.Build.DateStarted; BuildOutput = buildResult.Build.Output; TestClassResults = TestClassTableEntry.GetTestClassResults ( null /*checkpoint*/, buildResult.Build, testUrlBuilder ); IsLatestBuild = buildResult.LatestBuild; TestTrend = buildResult.Build.Status == BuildStatus.Completed ? new TestTrendViewModel ( buildResult.AllBuildTestCounts, buildResult.Build.Commit.Project.Name, buildResult.Build, thumbnail: false ) : null; UnreadFeedback = unreadFeedback.Select ( uf => new UnreadFeedbackViewModel ( uf, feedbackUrlBuilder, timeZoneProvider ) ).ToList(); }