Skip to content

Commit 6fa03e8

Browse files
committed
Generate Content Hub URLs on initial report run, not just on reload
- Make GetExternalResourceGroup async to generate URLs immediately - Use Task.WhenAll for parallel URL generation across resource groups - URLs now appear on first report run instead of requiring page reload This fixes the issue where Content Hub links only appeared after reloading the page.
1 parent 935963c commit 6fa03e8

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/Services/SustainabilityService.cs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,10 @@ await page.EvaluateAsync($@"() => {{
111111
return null;
112112
}
113113

114-
var resourceGroups = Enum.GetValues<ResourceGroupType>()
115-
.Select(type => GetExternalResourceGroup(type, sustainabilityData.Resources, languageName))
116-
.ToList();
114+
var resourceGroupTasks = Enum.GetValues<ResourceGroupType>()
115+
.Select(type => GetExternalResourceGroup(type, sustainabilityData.Resources, languageName));
116+
117+
var resourceGroups = (await Task.WhenAll(resourceGroupTasks)).ToList();
117118

118119
var sustainabilityResponse = new SustainabilityResponse(DateTime.UtcNow)
119120
{
@@ -252,7 +253,7 @@ private static bool IsCssFile(string? url)
252253
return pathOnly.EndsWith(".css", StringComparison.OrdinalIgnoreCase);
253254
}
254255

255-
private ExternalResourceGroup GetExternalResourceGroup(ResourceGroupType groupType, IList<Resource> resources, string languageName)
256+
private async Task<ExternalResourceGroup> GetExternalResourceGroup(ResourceGroupType groupType, IList<Resource> resources, string languageName)
256257
{
257258
var initiator = ExternalResourceGroup.GetInitiatorType(groupType);
258259

@@ -308,12 +309,19 @@ private ExternalResourceGroup GetExternalResourceGroup(ResourceGroupType groupTy
308309

309310
transferSize += resource.TransferSize.GetValueOrDefault();
310311

311-
// Try to extract Content Item GUID for this resource (for later URL generation)
312+
// Try to extract Content Item GUID and generate Content Hub URL
312313
var contentItemGuid = _contentHubLinkService.TryExtractContentItemGuid(resource.Name);
314+
string? contentHubUrl = null;
315+
316+
if (contentItemGuid.HasValue)
317+
{
318+
contentHubUrl = await _contentHubLinkService.GenerateContentHubUrl(contentItemGuid.Value, languageName);
319+
}
313320

314321
var externalResource = new ExternalResource(resource.Name, (resource.TransferSize ?? 0) / 1024m)
315322
{
316-
ContentItemGuid = contentItemGuid
323+
ContentItemGuid = contentItemGuid,
324+
ContentHubUrl = contentHubUrl
317325
};
318326

319327
resourceList.Add(externalResource);

0 commit comments

Comments
 (0)