Fix MergeVersions()

This commit is contained in:
Mister Rajoy 2020-08-10 20:33:11 +02:00
parent 168160d9a3
commit c7b5bc55a1

View File

@ -233,7 +233,7 @@ namespace Jellyfin.Api.Controllers
.First(); .First();
} }
var list = primaryVersion.LinkedAlternateVersions.ToList(); var alternateVersionsOfPrimary = primaryVersion.LinkedAlternateVersions.ToList();
foreach (var item in items.Where(i => i.Id != primaryVersion.Id)) foreach (var item in items.Where(i => i.Id != primaryVersion.Id))
{ {
@ -241,17 +241,20 @@ namespace Jellyfin.Api.Controllers
item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None); item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None);
list.Add(new LinkedChild if (!alternateVersionsOfPrimary.Any(i => string.Equals(i.Path, item.Path, StringComparison.OrdinalIgnoreCase)))
{ {
Path = item.Path, alternateVersionsOfPrimary.Add(new LinkedChild
ItemId = item.Id {
}); Path = item.Path,
ItemId = item.Id
});
}
foreach (var linkedItem in item.LinkedAlternateVersions) foreach (var linkedItem in item.LinkedAlternateVersions)
{ {
if (!list.Any(i => string.Equals(i.Path, linkedItem.Path, StringComparison.OrdinalIgnoreCase))) if (!alternateVersionsOfPrimary.Any(i => string.Equals(i.Path, linkedItem.Path, StringComparison.OrdinalIgnoreCase)))
{ {
list.Add(linkedItem); alternateVersionsOfPrimary.Add(linkedItem);
} }
} }
@ -262,7 +265,7 @@ namespace Jellyfin.Api.Controllers
} }
} }
primaryVersion.LinkedAlternateVersions = list.ToArray(); primaryVersion.LinkedAlternateVersions = alternateVersionsOfPrimary.ToArray();
primaryVersion.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None); primaryVersion.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None);
return NoContent(); return NoContent();
} }