@@ -140,23 +140,26 @@ for ($i = 0; $i -lt $metadata.Count; $i++) {
140
140
Write-Host " File metadata already added for $ ( $metadata [$i ].Package) . Keeping the first entry found."
141
141
continue
142
142
}
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
+ }
149
150
}
150
151
}
151
152
}
152
153
153
154
$packagesForToc = @ {}
154
- foreach ($metadataEntry in (GetPackageLookup $metadata ).Values) {
155
+ $allPackages = GetPackageLookup $metadata
156
+ foreach ($metadataKey in $allPackages.Keys ) {
157
+ $metadataEntry = $allPackages [$metadataKey ]
155
158
if (! $metadataEntry.ServiceName ) {
156
- LogWarning " Empty ServiceName for package `" $ ( $metadataEntry .Package ) `" . Skipping."
159
+ LogWarning " Empty ServiceName for package `" $metadataKey `" . Skipping."
157
160
continue
158
161
}
159
- $packagesForToc [$metadataEntry .Package ] = $metadataEntry
162
+ $packagesForToc [$metadataKey ] = $metadataEntry
160
163
}
161
164
162
165
# Get unique service names and sort alphabetically to act as the service nodes
@@ -183,7 +186,7 @@ foreach ($service in $serviceNameList) {
183
186
184
187
# Client packages get individual entries
185
188
$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
187
190
if ($clientPackages ) {
188
191
foreach ($clientPackage in $clientPackages ) {
189
192
$packageItems += GetClientPackageNode - clientPackage $clientPackage
0 commit comments