private void CheckForBuildStart(ProjectStatus lastProjectStatus, ProjectStatus newProjectStatus) { if (lastProjectStatus.Activity != ProjectActivity.Building && newProjectStatus.Activity == ProjectActivity.Building) { buildDurationTracker.OnBuildStart(); } }
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)); }