@@ -140,23 +140,26 @@ for ($i = 0; $i -lt $metadata.Count; $i++) {
140140 Write-Host " File metadata already added for $ ( $metadata [$i ].Package) . Keeping the first entry found."
141141 continue
142142 }
143-
144- Add-Member `
145- - InputObject $metadata [$i ] `
146- - MemberType NoteProperty `
147- - Name FileMetadata `
148- - Value $fileEntry
143+ if (! ($metadata [$i ].PSObject.Members.Name -contains " GroupId" ) -or ($fileEntry.Group -eq $metadata [$i ].GroupId)) {
144+ Add-Member `
145+ - InputObject $metadata [$i ] `
146+ - MemberType NoteProperty `
147+ - Name FileMetadata `
148+ - Value $fileEntry
149+ }
149150 }
150151 }
151152}
152153
153154$packagesForToc = @ {}
154- foreach ($metadataEntry in (GetPackageLookup $metadata ).Values) {
155+ $allPackages = GetPackageLookup $metadata
156+ foreach ($metadataKey in $allPackages.Keys ) {
157+ $metadataEntry = $allPackages [$metadataKey ]
155158 if (! $metadataEntry.ServiceName ) {
156- LogWarning " Empty ServiceName for package `" $ ( $metadataEntry .Package ) `" . Skipping."
159+ LogWarning " Empty ServiceName for package `" $metadataKey `" . Skipping."
157160 continue
158161 }
159- $packagesForToc [$metadataEntry .Package ] = $metadataEntry
162+ $packagesForToc [$metadataKey ] = $metadataEntry
160163}
161164
162165# Get unique service names and sort alphabetically to act as the service nodes
@@ -183,7 +186,7 @@ foreach ($service in $serviceNameList) {
183186
184187 # Client packages get individual entries
185188 $clientPackages = $packagesForToc.Values.Where ({ $_.ServiceName -eq $service -and (' client' -eq $_.Type ) })
186- $clientPackages = $clientPackages | Sort-Object - Property Package
189+ $clientPackages = $clientPackages | Sort-Object ' Package' , ' GroupId ' | Get-Unique
187190 if ($clientPackages ) {
188191 foreach ($clientPackage in $clientPackages ) {
189192 $packageItems += GetClientPackageNode - clientPackage $clientPackage
0 commit comments