Skip to content

Commit c573d26

Browse files
author
Chris Santero
committed
do not serialize related data that already exists in the primary data
1 parent c7e0dfd commit c573d26

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

JSONAPI/Documents/Builders/RegistryDrivenResourceCollectionDocumentBuilder.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,14 @@ public IResourceCollectionDocument BuildDocument<TModel>(IEnumerable<TModel> pri
2727
primaryData.Select(d => (IResourceObject)CreateResourceObject(d, idDictionariesByType, null, includePathExpressions, linkBaseUrl, resourceMetadata))
2828
.ToArray();
2929

30+
var primaryResourceIdentifiers = primaryDataResources.Select(r => new { r.Id, r.Type }).ToArray();
31+
3032
var relatedData = idDictionariesByType.Values.SelectMany(d => d.Values).Cast<IResourceObject>().ToArray();
31-
var document = new ResourceCollectionDocument(primaryDataResources, relatedData, metadata);
33+
var relatedDataNotInPrimaryData = relatedData
34+
.Where(r => !primaryResourceIdentifiers.Any(pri => pri.Id == r.Id && pri.Type == r.Type))
35+
.ToArray();
36+
37+
var document = new ResourceCollectionDocument(primaryDataResources, relatedDataNotInPrimaryData, metadata);
3238
return document;
3339
}
3440
}

0 commit comments

Comments
 (0)