예제 #1
0
        public async Task Watch(
            BuildService buildService,
            BuildProviderSettings buildProviderSettings,
            double refreshInterval,
            Action <LastBuildsStatus> onRefreshAction)
        {
            _buildStatusRefreshTimer.OnElapsed(async() =>
            {
                var buildsStatus = await _buildsStatusProvider.DetermineBuildStatus(buildService, buildProviderSettings);

                onRefreshAction(buildsStatus);
            });

            await _buildStatusRefreshTimer.Start(refreshInterval);
        }
예제 #2
0
        private async Task <AggregatedBuildResult> DetermineAggregatedBuildResult(BuildService buildService, BuildProviderSettings buildProviderSettings)
        {
            //lastBuilds[_random.Next(lastBuilds.Count)].Result = GetRandomEnumValue<BuildResult>();
            var completedBuilds = await _buildsProvider.GetWithStatus(buildService, BuildStatus.Completed, buildProviderSettings);

            if (!completedBuilds.Any())
            {
                return(AggregatedBuildResult.None);
            }

            if (completedBuilds.Any(b => b.Result.Equals(BuildResult.Failed)))
            {
                return(AggregatedBuildResult.Failed);
            }

            if (completedBuilds.Any(b => b.Result.Equals(BuildResult.PartiallySucceeded)))
            {
                return(AggregatedBuildResult.PartiallySucceeded);
            }

            return(AggregatedBuildResult.Succeeded);
        }
예제 #3
0
        private async Task <AggregatedBuildStatus> DetermineAggregatedBuildStatus(BuildService buildService, BuildProviderSettings buildProviderSettings)
        {
            //var randomBit = _random.Next(0, 2);
            //lastBuilds[_random.Next(lastBuilds.Count)].Status = randomBit == 1 ? BuildStatus.Completed : BuildStatus.InProgress;
            var inProgressBuilds = await _buildsProvider.GetWithStatus(buildService, BuildStatus.InProgress, buildProviderSettings);

            return(inProgressBuilds.Any() ? AggregatedBuildStatus.InProgress : AggregatedBuildStatus.Completed);
        }
예제 #4
0
 public async Task <LastBuildsStatus> DetermineBuildStatus(BuildService buildService, BuildProviderSettings buildProviderSettings)
 {
     return(new LastBuildsStatus
     {
         AggregatedBuildStatus = await DetermineAggregatedBuildStatus(buildService, buildProviderSettings),
         AggregatedBuildResult = await DetermineAggregatedBuildResult(buildService, buildProviderSettings)
     });
 }