|
@@ -681,6 +681,11 @@ namespace MediaBrowser.Api
|
|
|
{
|
|
|
var album = originalItem as MusicAlbum;
|
|
|
|
|
|
+ if (album == null)
|
|
|
+ {
|
|
|
+ album = originalItem.Parents.OfType<MusicAlbum>().FirstOrDefault();
|
|
|
+ }
|
|
|
+
|
|
|
if (album != null)
|
|
|
{
|
|
|
var linkedItemWithThemes = album.SoundtrackIds
|
|
@@ -744,17 +749,12 @@ namespace MediaBrowser.Api
|
|
|
: (Folder)_libraryManager.RootFolder)
|
|
|
: _dtoService.GetItemByDtoId(id, userId);
|
|
|
|
|
|
- while (GetSoundtrackSongIds(item).Count == 0 && inheritFromParent && item.Parent != null)
|
|
|
- {
|
|
|
- item = item.Parent;
|
|
|
- }
|
|
|
-
|
|
|
// Get everything
|
|
|
var fields = Enum.GetNames(typeof(ItemFields))
|
|
|
.Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true))
|
|
|
.ToList();
|
|
|
|
|
|
- var dtos = GetSoundtrackSongIds(item)
|
|
|
+ var dtos = GetSoundtrackSongIds(item, inheritFromParent)
|
|
|
.Select(_libraryManager.GetItemById)
|
|
|
.OfType<MusicAlbum>()
|
|
|
.SelectMany(i => i.RecursiveChildren)
|
|
@@ -772,7 +772,7 @@ namespace MediaBrowser.Api
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- private List<Guid> GetSoundtrackSongIds(BaseItem item)
|
|
|
+ private IEnumerable<Guid> GetSoundtrackSongIds(BaseItem item, bool inherit)
|
|
|
{
|
|
|
var hasSoundtracks = item as IHasSoundtracks;
|
|
|
|
|
@@ -781,7 +781,14 @@ namespace MediaBrowser.Api
|
|
|
return hasSoundtracks.SoundtrackIds;
|
|
|
}
|
|
|
|
|
|
- return new List<Guid>();
|
|
|
+ if (!inherit)
|
|
|
+ {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ hasSoundtracks = item.Parents.OfType<IHasSoundtracks>().FirstOrDefault();
|
|
|
+
|
|
|
+ return hasSoundtracks != null ? hasSoundtracks.SoundtrackIds : new List<Guid>();
|
|
|
}
|
|
|
}
|
|
|
}
|