AddNestedEntity( string parentpath, string currentpath, VSProject project, VSSolutionFolder parent = null) { var split = currentpath.Split('/'); var path = split[0]; var keyPath = string.Join("/", parentpath, path); lock (this.SolutionFolders) { if (!this.SolutionFolders.ContainsKey(keyPath)) { this.SolutionFolders.Add(keyPath, new VSSolutionFolder(keyPath, path)); } } var folder = this.SolutionFolders[keyPath]; if (null != parent) { parent.appendNestedEntity(folder); } if (1 == split.Length) { folder.appendNestedEntity(project); } else { this.AddNestedEntity(keyPath, string.Join("/", split.Skip(1)), project, folder); } }
AddNestedEntity( string fullpath, VSProject project, VSSolutionFolder parent = null) { var split = fullpath.Split('/'); var path = split[0]; if (!this.SolutionFolders.ContainsKey(path)) { this.SolutionFolders.Add(path, new VSSolutionFolder(path)); } var folder = this.SolutionFolders[path]; if (null != parent) { parent.NestedEntities.AddUnique(folder); } if (1 == split.Length) { folder.NestedEntities.AddUnique(project); } else { this.AddNestedEntity(string.Join("/", split.Skip(1)), project, folder); } }
private void AddNestedEntity( string fullpath, VSProject project, VSSolutionFolder parent = null) { var split = fullpath.Split('/'); var path = split[0]; if (!this.SolutionFolders.ContainsKey(path)) { this.SolutionFolders.Add(path, new VSSolutionFolder(path)); } var folder = this.SolutionFolders[path]; if (null != parent) { parent.NestedEntities.AddUnique(folder); } if (1 == split.Length) { folder.NestedEntities.AddUnique(project); } else { this.AddNestedEntity(string.Join("/", split.Skip(1)), project, folder); } }