diff options
| author | Niels van Velzen <nielsvanvelzen@users.noreply.github.com> | 2026-05-03 21:56:34 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-03 21:56:34 +0200 |
| commit | 6e22075a63432aae48859cf9c67fde158dc80d2e (patch) | |
| tree | c3a33238cc56857d8e3daa56db01f290118c9215 /MediaBrowser.XbmcMetadata | |
| parent | d9ced0d6399c82ddad9e983605bb0d828a608e63 (diff) | |
| parent | d68d0fa96267ad96eaa5a0ba37e072f59a71442a (diff) | |
Merge pull request #16062 from Shadowghost/perf-rebased
Query Performance Improvements
Diffstat (limited to 'MediaBrowser.XbmcMetadata')
| -rw-r--r-- | MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs index 0757155aac..4ca3aa9ef5 100644 --- a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs +++ b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs @@ -781,26 +781,30 @@ namespace MediaBrowser.XbmcMetadata.Savers private void AddCollectionItems(Folder item, XmlWriter writer) { - var items = item.LinkedChildren + var linkedChildren = item.LinkedChildren .Where(i => i.Type == LinkedChildType.Manual) - .OrderBy(i => i.Path?.Trim()) - .ThenBy(i => i.LibraryItemId?.Trim()) .ToList(); - foreach (var link in items) - { - writer.WriteStartElement("collectionitem"); - - if (!string.IsNullOrWhiteSpace(link.Path)) + // Resolve ItemIds to paths and sort + var itemsWithPaths = linkedChildren + .Select(link => { - writer.WriteElementString("path", link.Path); - } + if (link.ItemId.HasValue && !link.ItemId.Value.Equals(Guid.Empty)) + { + var linkedItem = LibraryManager.GetItemById(link.ItemId.Value); + return linkedItem?.Path; + } - if (!string.IsNullOrWhiteSpace(link.LibraryItemId)) - { - writer.WriteElementString("ItemId", link.LibraryItemId); - } + return null; + }) + .Where(path => !string.IsNullOrWhiteSpace(path)) + .OrderBy(path => path?.Trim()) + .ToList(); + foreach (var path in itemsWithPaths) + { + writer.WriteStartElement("collectionitem"); + writer.WriteElementString("path", path); writer.WriteEndElement(); } } |
