internal /*for testing purposes*/ void DiscoverProjects(IProgressController controller, IProgressStepExecutionEvents notifications)
{
Debug.Assert(ThreadHelper.CheckAccess(), "Expected step to be run on the UI thread");
notifications.ProgressChanged(Strings.DiscoveringSolutionProjectsProgressMessage);
this.BindingProjects.UnionWith(this.projectSystem.GetFilteredSolutionProjects());
this.InformAboutFilteredOutProjects();
if (!this.BindingProjects.Any())
{
AbortWorkflow(controller, CancellationToken.None);
}
}