Author: brett
Date: Thu Jan 26 06:52:56 2012
New Revision: 1236051

URL: http://svn.apache.org/viewvc?rev=1236051&view=rev
Log:
[NPANDAY-534] ensure that projects within folders are traversed when needed

Modified:
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/MavenRunner.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs?rev=1236051&r1=1236050&r2=1236051&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs
 Thu Jan 26 06:52:56 2012
@@ -573,6 +573,34 @@ namespace NPanday.VisualStudio.Addin
             return (String.Compare(project.Kind, FOLDER_KIND_GUID, true) == 0);
         }
 
+        public static IEnumerable<Project> GetAllProjects(Projects 
solutionProjects)
+        {
+            List<Project> projects = new List<Project>();
+            foreach (Project project in solutionProjects)
+            {
+                addProject(projects, project);
+            }
+            return projects;
+        }
+
+        private static void addProject(List<Project> projects, Project project)
+        {
+            if (IsFolder(project))
+            {
+                foreach (ProjectItem item in project.ProjectItems)
+                {
+                    if (item.SubProject != null)
+                    {
+                        addProject(projects, item.SubProject);
+                    }
+                }
+            }
+            else
+            {
+                projects.Add(project);
+            }
+        }
+
         void InsertKeyTag(string filePath, string key)
         {
             try
@@ -621,7 +649,7 @@ namespace NPanday.VisualStudio.Addin
         {
             Solution2 solution = (Solution2)_applicationObject.Solution;
             string pomFilePath = string.Empty;
-            foreach (Project project in solution.Projects)
+            foreach (Project project in GetAllProjects(solution.Projects))
             {
                 string name = null;
                 try
@@ -729,7 +757,7 @@ namespace NPanday.VisualStudio.Addin
             this.wsRefWatcher = new List<WebServicesReferenceWatcher>();
             this.svRefWatcher = new List<WebServicesReferenceWatcher>();
 
-            foreach (Project project in solution.Projects)
+            foreach (Project project in GetAllProjects(solution.Projects))
             {
                 projectRefEventLoaded = true;
 
@@ -1502,9 +1530,9 @@ namespace NPanday.VisualStudio.Addin
             try
             {
                 if (_applicationObject.Solution != null)
-                {
+                {                    
                     Solution2 solution = 
(Solution2)_applicationObject.Solution;
-                    foreach (Project project in solution.Projects)
+                    foreach (Project project in 
GetAllProjects(solution.Projects))
                     {
                         if (!IsWebSite(project) && !IsFolder(project) && 
!IsCloudProject(project) && project.Object != null)
                         {
@@ -1900,7 +1928,7 @@ namespace NPanday.VisualStudio.Addin
             {
                 Solution2 solution = (Solution2)_applicationObject.Solution;
                 bool asked = false;
-                foreach (Project project in solution.Projects)
+                foreach (Project project in GetAllProjects(solution.Projects))
                 {
                     if (!IsWebSite(project) && 
ProjectHasWebReferences(project))
                     {

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/MavenRunner.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/MavenRunner.cs?rev=1236051&r1=1236050&r2=1236051&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/MavenRunner.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/MavenRunner.cs
 Thu Jan 26 06:52:56 2012
@@ -86,8 +86,6 @@ namespace NPanday.VisualStudio.Addin
         {
             Solution2 solution = (Solution2)dte2.Solution;
 
-            Projects projs = solution.Projects;
-
             bool isFlatProject = true;
 
             string[] directoryPartial = 
solution.FullName.Split("\\".ToCharArray());

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs?rev=1236051&r1=1236050&r2=1236051&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs
 Thu Jan 26 06:52:56 2012
@@ -121,7 +121,8 @@ namespace NPanday.VisualStudio.Addin
 
                     bool hasWebProjects = false, hasCloudProjects = false;
                     Solution2 solution = (Solution2)applicationObject.Solution;
-                    foreach (Project project in solution.Projects)
+
+                    foreach (Project project in 
Connect.GetAllProjects(solution.Projects))
                     {
                         bool web = isWebProject(project);
                         bool cloud = isCloudProject(project);
@@ -428,7 +429,7 @@ namespace NPanday.VisualStudio.Addin
             {
                 Solution2 solution = (Solution2)applicationObject.Solution;
                 IList<IReferenceManager> refManagers = new 
List<IReferenceManager>();
-                foreach (Project project in solution.Projects)
+                foreach (Project project in 
Connect.GetAllProjects(solution.Projects))
                 {
                     if (!isWebProject(project) && !isFolder(project) && 
project.Object != null)
                     {
@@ -482,11 +483,12 @@ namespace NPanday.VisualStudio.Addin
         {
             Solution2 solution = (Solution2)applicationObject.Solution;
             string solutionDir = Path.GetDirectoryName(solution.FullName);
-            bool isFlatSingleModule = (solution.Projects.Count == 1
-                && 
Path.GetExtension(solution.Projects.Item(1).FullName).EndsWith("proj")
-                && solutionDir == 
Path.GetDirectoryName(solution.Projects.Item(1).FullName));
+            Projects projects = solution.Projects;
+            bool isFlatSingleModule = (projects.Count == 1
+                && 
Path.GetExtension(projects.Item(1).FullName).EndsWith("proj")
+                && solutionDir == 
Path.GetDirectoryName(projects.Item(1).FullName));
 
-            foreach (Project project in solution.Projects)
+            foreach (Project project in Connect.GetAllProjects(projects))
             {
                 string projPath = string.Empty;
                 try { projPath = project.FullName; }


Reply via email to