Example #1
0
 private void CheckForBuildStart(ProjectStatus lastProjectStatus, ProjectStatus newProjectStatus)
 {
     if (lastProjectStatus.Activity != ProjectActivity.Building && newProjectStatus.Activity == ProjectActivity.Building)
     {
         buildDurationTracker.OnBuildStart();
     }
 }
Example #2
0
        public void Poll()
        {
            try
            {
                ProjectStatus newProjectStatus = serverMonitor.GetProjectStatus(ProjectName);
                if (lastProjectStatus != null && newProjectStatus != null)
                {
                    PollIntervalReporter duringInterval = new PollIntervalReporter(lastProjectStatus, newProjectStatus);

                    if (duringInterval.IsAnotherBuildComplete && duringInterval.WasLatestBuildSuccessful)
                    {
                        buildDurationTracker.OnSuccessfulBuild();
                    }
                    if (duringInterval.IsAnotherBuildComplete)
                    {
                        OnBuildOccurred(new MonitorBuildOccurredEventArgs(this, duringInterval.BuildTransition));
                    }

                    if (duringInterval.HasNewBuildStarted)
                    {
                        buildDurationTracker.OnBuildStart();
                    }

                    if (duringInterval.WasNewStatusMessagesReceived)
                    {
                        OnMessageReceived(newProjectStatus.Name, duringInterval.AllStatusMessages);
                    }
                }
                lastProjectStatus = newProjectStatus;
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Exception during poll: " + ex);
                lastProjectStatus = null;
                connectException  = ex;
            }

            OnPolled(new MonitorPolledEventArgs(this));
        }