private BuildRequestCollection GenerateRequests(string[] serverItems, TriggerCollection triggers) { #region Tracing #line hidden if (ChangesetWatcher.m_TraceSwitch.TraceVerbose) { Trace.TraceInformation("Generating build requests."); } #line default #endregion BuildRequestCollection requests = new BuildRequestCollection(); foreach (string serverItem in serverItems) { foreach (Trigger trigger in triggers) { if (trigger.Evaluate(serverItem)) { BuildRequest request = new BuildRequest(); request.TeamProject = trigger.TeamProject; request.BuildType = trigger.BuildType; request.BuildMachine = trigger.BuildMachine; if (!requests.Contains(request)) { requests.Add(request); } } } } #region Tracing #line hidden if (ChangesetWatcher.m_TraceSwitch.TraceVerbose) { Trace.TraceInformation( "Generated '{0}' build requests.", requests.Count); } #line default #endregion return(requests); }
private void RunBuilds(int originalChangesetId, int currentChangesetId) { #region Tracing #line hidden if (ChangesetWatcher.m_TraceSwitch.TraceVerbose) { Trace.TraceInformation( "Running builds for server items referenced in changesets '{0}' to '{1}'.", originalChangesetId + 1, currentChangesetId ); } #line default #endregion string[] serverItems = this.EnumerateServerItems(originalChangesetId, currentChangesetId); TriggerCollection triggers = this.FetchAllTriggers(); BuildRequestCollection requests = this.GenerateRequests(serverItems, triggers); foreach (BuildRequest request in requests) { this.ProcessBuildRequest(request); } }