diff --git a/DigitalLearningSolutions.Data/ApiClients/LearningHubApiClient.cs b/DigitalLearningSolutions.Data/ApiClients/LearningHubApiClient.cs index 9ca3f0ab96..a6a9684cc2 100644 --- a/DigitalLearningSolutions.Data/ApiClients/LearningHubApiClient.cs +++ b/DigitalLearningSolutions.Data/ApiClients/LearningHubApiClient.cs @@ -11,6 +11,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; using Newtonsoft.Json; + using JsonSerializer = System.Text.Json.JsonSerializer; public interface ILearningHubApiClient { @@ -75,18 +76,19 @@ public async Task GetBulkResourcesByReferenceIds( IEnumerable resourceReferenceIds ) { - var referenceIdQueryStrings = - resourceReferenceIds.Select(id => GetQueryString("resourceReferenceIds", id.ToString())); - var queryString = string.Join("&", referenceIdQueryStrings); + var referenceIds = resourceReferenceIds.ToList(); + var objectWithReferenceIds = new { referenceIds = referenceIds.ToList() }; + + var jsonString = JsonSerializer.Serialize(objectWithReferenceIds); + var response = await GetStringAsync($"/Resource/BulkJson?{jsonString}"); - var response = await GetStringAsync($"/Resource/Bulk?{queryString}"); var result = JsonConvert.DeserializeObject(response); return result; } public async Task GetCatalogues() { - var response = await GetStringAsync($"/Catalogues"); + var response = await GetStringAsync("/Catalogues"); var result = JsonConvert.DeserializeObject(response); return result; } @@ -104,7 +106,8 @@ private static string GetSearchQueryString( var offSetQueryString = GetQueryString("offset", offset?.ToString()); var limitQueryString = GetQueryString("limit", limit?.ToString()); - var queryStrings = new List { textQueryString, catalogueIdString, offSetQueryString, limitQueryString }; + var queryStrings = new List + { textQueryString, catalogueIdString, offSetQueryString, limitQueryString }; if (resourceTypes != null) {