Exemplo n.º 1
0
        private void BuildWatcherStatusChecked(object sender, StatusCheckedEventArgsArgs args)
        {
            ApplyUserMappings(args);
            SendCiServerConnectedEvents();
            TryToGetAndSendNewSosOnlineAlerts();
            BuildStatus[]       allBuildStatuses     = BuildStatusUtil.Merge(_previousBuildStatuses, args.BuildStatuses);
            IList <BuildStatus> changedBuildStatuses = GetChangedBuildStatuses(allBuildStatuses);

            if (!changedBuildStatuses.Any())
            {
                return;
            }
            InvokeSetTrayIcon(changedBuildStatuses);
            InvokeRefreshStatusIfAnythingChanged(allBuildStatuses, changedBuildStatuses);
            AddAnyNewPeopleToSettings(changedBuildStatuses);
            UpdateBuildNamesInSettingsIfAnyChanged(changedBuildStatuses);
            IList <ChangedBuildStatusesAndTheirPreviousState> changedBuildStatusesAndTheirPreviousState = GetChangedBuildStatusesAndTheirPreviousState(changedBuildStatuses);

            FireApplicableRulesEngineEvents(changedBuildStatusesAndTheirPreviousState);
            WriteNewBuildsToSosDb(changedBuildStatusesAndTheirPreviousState);
            NotifyIfNewAchievements(changedBuildStatuses);
            InvokeStatsChanged(changedBuildStatuses);
            SyncNewBuildsToSos(changedBuildStatuses);
            InvokeNewNewsItemIfAny(changedBuildStatusesAndTheirPreviousState);
            CacheBuildStatuses(changedBuildStatuses);
        }
Exemplo n.º 2
0
 public void ExecuteNewBuilds(IList <BuildStatus> newBuildStatuses)
 {
     try
     {
         ApplyUserMappings(newBuildStatuses);
         SendCiServerConnectedEvents();
         TryToGetAndSendNewSosOnlineAlerts();
         var allBuildStatuses     = BuildStatusUtil.Merge(_previousBuildStatuses, newBuildStatuses);
         var changedBuildStatuses = GetChangedBuildStatuses(allBuildStatuses);
         if (!changedBuildStatuses.Any())
         {
             if (_restarting)
             {
                 InvokeRefreshStatus(allBuildStatuses);
             }
             return;
         }
         InvokeSetTrayIcon(changedBuildStatuses);
         InvokeRefreshStatusIfAnythingChanged(allBuildStatuses, changedBuildStatuses);
         AddAnyNewPeopleToSettings(changedBuildStatuses);
         UpdateBuildNamesInSettingsIfAnyChanged(changedBuildStatuses);
         var changedBuildStatusesAndTheirPreviousState = GetChangedBuildStatusesAndTheirPreviousState(changedBuildStatuses);
         FireApplicableRulesEngineEvents(changedBuildStatusesAndTheirPreviousState);
         WriteNewBuildsToSosDb(changedBuildStatusesAndTheirPreviousState);
         NotifyIfNewAchievements(changedBuildStatuses);
         InvokeStatsChanged(changedBuildStatuses);
         SyncNewBuildsToSos(changedBuildStatuses);
         InvokeNewNewsItemIfAny(changedBuildStatusesAndTheirPreviousState);
         CacheBuildStatuses(changedBuildStatuses);
     }
     finally
     {
         _restarting = false;
     }
 }
Exemplo n.º 3
0
        public void Merge_RemovedBuildStatus_Retained()
        {
            var oldStatus = new[] { new BuildStatus {
                                        BuildDefinitionId = "1", BuildStatusEnum = BuildStatusEnum.Working
                                    } };
            var newStatuses = new BuildStatus[] {};
            var result      = BuildStatusUtil.Merge(oldStatus, newStatuses);

            Assert.AreEqual(1, result.Count());
        }
Exemplo n.º 4
0
        public void Merge_NewBuildStatus_Added()
        {
            var oldStatus   = new BuildStatus[] {};
            var newStatuses = new[] { new BuildStatus {
                                          BuildDefinitionId = "1", BuildStatusEnum = BuildStatusEnum.Working
                                      } };
            var result = BuildStatusUtil.Merge(oldStatus, newStatuses);

            Assert.AreEqual(1, result.Count());
            Assert.AreEqual("1", result[0].BuildDefinitionId);
            Assert.AreEqual(BuildStatusEnum.Working, result[0].BuildStatusEnum);
        }
Exemplo n.º 5
0
        public void Merge_ExistingUnchangedBuildStatus_NotOverwritten()
        {
            var oldStatus = new[] { new BuildStatus {
                                        BuildDefinitionId = "1", BuildStatusEnum = BuildStatusEnum.Working, LocalStartTime = new DateTime(2010, 1, 1)
                                    } };
            var newStatuses = new[] { new BuildStatus {
                                          BuildDefinitionId = "1", BuildStatusEnum = BuildStatusEnum.Working, LocalStartTime = new DateTime(2012, 2, 2)
                                      } };
            var result = BuildStatusUtil.Merge(oldStatus, newStatuses);

            Assert.AreEqual(1, result.Count());
            Assert.AreEqual("1", result[0].BuildDefinitionId);
            Assert.AreEqual(BuildStatusEnum.Working, result[0].BuildStatusEnum);
            Assert.AreEqual(new DateTime(2010, 1, 1), result[0].LocalStartTime);
        }