diff options
| author | Shadowghost <Ghost_of_Stone@web.de> | 2026-02-15 23:12:52 +0100 |
|---|---|---|
| committer | Shadowghost <Ghost_of_Stone@web.de> | 2026-02-15 23:12:52 +0100 |
| commit | 3439d3c017a06604e7b471a1063a8467306f78f2 (patch) | |
| tree | 356fbec32efdba1456b6103d95d1463f092b1bb1 /Emby.Server.Implementations/Library | |
| parent | 837c7d4ed3edc8c4fcf2640bd6341bb792888244 (diff) | |
Migrate PrimaryVersionId to GUID and fix assignment
Diffstat (limited to 'Emby.Server.Implementations/Library')
| -rw-r--r-- | Emby.Server.Implementations/Library/LibraryManager.cs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index df259c303f..7517dc03ba 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -408,7 +408,7 @@ namespace Emby.Server.Implementations.Library // If deleting a primary version video, clear PrimaryVersionId from alternate versions // OwnerId check: items with OwnerId set are alternate versions or extras, not primaries - if (item is Video video && string.IsNullOrEmpty(video.PrimaryVersionId) && video.OwnerId.IsEmpty()) + if (item is Video video && !video.PrimaryVersionId.HasValue && video.OwnerId.IsEmpty()) { var alternateVersions = GetLocalAlternateVersionIds(video) .Concat(GetLinkedAlternateVersions(video).Select(v => v.Id)) @@ -435,16 +435,15 @@ namespace Emby.Server.Implementations.Library // Update remaining alternates to point to new primary foreach (var alternate in alternateVersions.Skip(1)) { - alternate.SetPrimaryVersionId(newPrimary.Id.ToString("N", CultureInfo.InvariantCulture)); + alternate.SetPrimaryVersionId(newPrimary.Id); alternate.UpdateToRepositoryAsync(ItemUpdateType.MetadataEdit, CancellationToken.None).GetAwaiter().GetResult(); } } } - else if (item is Video alternateVideo && !string.IsNullOrEmpty(alternateVideo.PrimaryVersionId) - && Guid.TryParse(alternateVideo.PrimaryVersionId, out var primaryId)) + else if (item is Video alternateVideo && alternateVideo.PrimaryVersionId.HasValue) { // If deleting an alternate version, re-route references to its primary - _itemRepository.RerouteLinkedChildren(alternateVideo.Id, primaryId); + _itemRepository.RerouteLinkedChildren(alternateVideo.Id, alternateVideo.PrimaryVersionId.Value); } var children = item.IsFolder @@ -2181,6 +2180,7 @@ namespace Emby.Server.Implementations.Library if (altVideo is not null) { altVideo.OwnerId = video.Id; + altVideo.SetPrimaryVersionId(video.Id); allItems.Add(altVideo); } } @@ -2383,6 +2383,7 @@ namespace Emby.Server.Implementations.Library if (altVideo is not null) { altVideo.OwnerId = video.Id; + altVideo.SetPrimaryVersionId(video.Id); allItems.Add(altVideo); } } |
