/// <summary> /// Initializes a new instance of the <see cref="Build" /> class. /// </summary> /// <param name="build">The build.</param> /// <param name="changes">The changes.</param> public Build(Api.Models.Build build, IEnumerable <Api.Models.Change> changes) { Ensure.That(build).IsNotNull(); Ensure.That(changes).IsNotNull(); Id = build.Id; Version = null; Number = build.BuildNumber; Branch = build.SourceBranch; StartTime = build.StartTime?.ToUniversalTime(); EndTime = build.FinishTime?.ToUniversalTime(); Status = GetStatus(build); RequestedBy = build.RequestedFor.DisplayName; WebUrl = build.Url; Changes = changes.Select(lastChange => new Change(lastChange.Id, lastChange.Timestamp?.ToUniversalTime(), lastChange.Author.DisplayName, lastChange.Message?.Trim())).ToArray(); }
private static BuildStatus?GetStatus(Api.Models.Build build) { // ReSharper disable once SwitchStatementMissingSomeCases switch (build.Status) { case Api.Models.BuildStatus.InProgress: return(BuildStatus.InProgress); case Api.Models.BuildStatus.Cancelling: return(BuildStatus.Stopped); case Api.Models.BuildStatus.NotStarted: case Api.Models.BuildStatus.Postponed: return(BuildStatus.Queued); case Api.Models.BuildStatus.Completed: // ReSharper disable once SwitchStatementMissingSomeCases switch (build.Result) { case Api.Models.BuildResult.Canceled: return(BuildStatus.Stopped); case Api.Models.BuildResult.Failed: return(BuildStatus.Failed); case Api.Models.BuildResult.PartiallySucceeded: case Api.Models.BuildResult.Succeeded: return(BuildStatus.Succeeded); default: return(null); } default: return(null); } }