Exemple #1
0
        private static BuildStatus?GetStatus(Api.Models.Build build)
        {
            // ReSharper disable once SwitchStatementMissingSomeCases
            switch (build.Status)
            {
            case Api.Models.BuildStatus.Queued:
                return(BuildStatus.Queued);

            case Api.Models.BuildStatus.Success:
                return(BuildStatus.Succeeded);

            case Api.Models.BuildStatus.Failed:
            case Api.Models.BuildStatus.NoTests:
                return(BuildStatus.Failed);

            case Api.Models.BuildStatus.Canceled:
            case Api.Models.BuildStatus.TimedOut:
            case Api.Models.BuildStatus.InfrastructureFail:
                return(BuildStatus.Stopped);

            default:
                if (!build.StopTime.HasValue || !build.Outcome.HasValue)
                {
                    return(BuildStatus.InProgress);
                }

                return(null);
            }
        }
Exemple #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Build" /> class.
        /// </summary>
        /// <param name="build">The build.</param>
        public Build(Api.Models.Build build)
        {
            Ensure.That(build).IsNotNull();

            Id          = string.Concat(build.ProjectName, build.BuildNumber);
            Version     = null;
            Number      = build.BuildNumber.ToString();
            Branch      = build.Branch;
            StartTime   = build.StartTime?.ToUniversalTime();
            EndTime     = build.StopTime?.ToUniversalTime();
            Status      = GetStatus(build);
            RequestedBy = null;
            WebUrl      = build.BuildUrl;
            Changes     = new[]
            {
                new Change(build.VcsRevision, build.QueuedAt?.ToUniversalTime(), build.CommitterName, build.Subject?.Trim())
            };
        }