private void SanityCheckBuildJobs(Project[] CheckProjects) { // check that project, config and platform strings in build jobs are valid // remove invalid ones string[] SolutionConfigs; string[] SolutionPlatforms; Utils.GetSolutionConfigsAndPlatforms(out SolutionConfigs, out SolutionPlatforms); foreach (var JobSet in _BuildJobSetsCollection) { for (int JobIdx = JobSet.BuildJobs.Count - 1; JobIdx >= 0; JobIdx--) { BuildJob Job = JobSet.BuildJobs[JobIdx]; bool bProjectOkay = CheckProjects.Any(Proj => String.CompareOrdinal(Job.Project.FullName, Proj.FullName) == 0); bool bConfigOkay = SolutionConfigs.Any(Config => String.CompareOrdinal(Job.Config, Config) == 0); bool bPlatformOkay = SolutionPlatforms.Any(Platform => String.CompareOrdinal(Job.Platform, Platform) == 0); if (!bProjectOkay || !bConfigOkay || !bPlatformOkay) { JobSet.BuildJobs.RemoveAt(JobIdx); } } } }
private void RefreshConfigAndPlatformCollections() { _ConfigCollection.Clear(); _PlatformCollection.Clear(); if (!IsSolutionOpen) { _BuildJobSetsCollection.Clear(); } string[] RefreshConfigs; string[] RefreshPlatforms; Utils.GetSolutionConfigsAndPlatforms(out RefreshConfigs, out RefreshPlatforms); foreach (string Config in RefreshConfigs) { _ConfigCollection.Add(Config); } foreach (string Platform in RefreshPlatforms) { _PlatformCollection.Add(Platform); } EnsureDefaultBuildJobSet(); }