Address review on MediaSourceCount batching

Rename GetItemsWithAlternateVersions to GetItemIdsWithAlternateVersions
across the interfaces and implementations since it returns ids. Return
the hashset straight from the query instead of materializing an array
first. Rename the DtoService guard to mayHaveAlternateVersions and
invert it so the computed path is the explicit case. Assert the media
source count value in the batch skip test and add a test covering an
item that is in the returned set still resolving to the correct count.
This commit is contained in:
brandon
2026-08-08 12:33:11 -04:00
parent c091ffdc6b
commit 10d108a1f4
6 changed files with 60 additions and 19 deletions
@@ -60,7 +60,7 @@ public class LinkedChildrenService : ILinkedChildrenService
}
/// <inheritdoc/>
public IReadOnlySet<Guid> GetItemsWithAlternateVersions(IReadOnlyList<Guid> itemIds)
public IReadOnlySet<Guid> GetItemIdsWithAlternateVersions(IReadOnlyList<Guid> itemIds)
{
if (itemIds.Count == 0)
{
@@ -69,15 +69,13 @@ public class LinkedChildrenService : ILinkedChildrenService
using var dbContext = _dbProvider.CreateDbContext();
var parentIds = dbContext.LinkedChildren
return dbContext.LinkedChildren
.Where(lc => (lc.ChildType == DbLinkedChildType.LocalAlternateVersion
|| lc.ChildType == DbLinkedChildType.LinkedAlternateVersion)
&& itemIds.Contains(lc.ParentId))
.Select(lc => lc.ParentId)
.Distinct()
.ToArray();
return parentIds.ToHashSet();
.ToHashSet();
}
/// <inheritdoc/>