예제 #1
0
        /// <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();
        }
예제 #2
0
        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);
            }
        }