@ -104,35 +104,11 @@ namespace MediaBrowser.Controller.Dto
if ( fields . Contains ( ItemFields . SoundtrackIds ) )
{
var series = item as Series ;
if ( series ! = null )
{
AttachSoundtrackIds ( dto , series , user ) ;
}
var movie = item as Movie ;
if ( movie ! = null )
{
AttachSoundtrackIds ( dto , movie , user ) ;
}
var album = item as MusicAlbum ;
if ( album ! = null )
{
AttachSoundtrackIds ( dto , album , user ) ;
}
var game = item as Game ;
if ( game ! = null )
{
AttachSoundtrackIds ( dto , game , user ) ;
}
dto . SoundtrackIds = item . SoundtrackIds
. Select ( i = > i . ToString ( "N" ) )
. ToArray ( ) ;
}
// Make sure all the tasks we kicked off have completed.
if ( tasks . Count > 0 )
{
@ -142,132 +118,6 @@ namespace MediaBrowser.Controller.Dto
return dto ;
}
private void AttachSoundtrackIds ( BaseItemDto dto , Movie item , User user )
{
var tmdb = item . GetProviderId ( MetadataProviders . Tmdb ) ;
if ( string . IsNullOrEmpty ( tmdb ) )
{
return ;
}
var recursiveChildren = user = = null
? _libraryManager . RootFolder . RecursiveChildren
: user . RootFolder . GetRecursiveChildren ( user ) ;
dto . SoundtrackIds = recursiveChildren
. Where ( i = >
{
if ( ! string . IsNullOrEmpty ( tmdb ) & &
string . Equals ( tmdb , i . GetProviderId ( MetadataProviders . Tmdb ) , StringComparison . OrdinalIgnoreCase ) & &
i is MusicAlbum )
{
return true ;
}
return false ;
} )
. Select ( GetClientItemId )
. ToArray ( ) ;
}
private void AttachSoundtrackIds ( BaseItemDto dto , Series item , User user )
{
var tvdb = item . GetProviderId ( MetadataProviders . Tvdb ) ;
if ( string . IsNullOrEmpty ( tvdb ) )
{
return ;
}
var recursiveChildren = user = = null
? _libraryManager . RootFolder . RecursiveChildren
: user . RootFolder . GetRecursiveChildren ( user ) ;
dto . SoundtrackIds = recursiveChildren
. Where ( i = >
{
if ( ! string . IsNullOrEmpty ( tvdb ) & &
string . Equals ( tvdb , i . GetProviderId ( MetadataProviders . Tvdb ) , StringComparison . OrdinalIgnoreCase ) & &
i is MusicAlbum )
{
return true ;
}
return false ;
} )
. Select ( GetClientItemId )
. ToArray ( ) ;
}
private void AttachSoundtrackIds ( BaseItemDto dto , Game item , User user )
{
var gamesdb = item . GetProviderId ( MetadataProviders . Gamesdb ) ;
if ( string . IsNullOrEmpty ( gamesdb ) )
{
return ;
}
var recursiveChildren = user = = null
? _libraryManager . RootFolder . RecursiveChildren
: user . RootFolder . GetRecursiveChildren ( user ) ;
dto . SoundtrackIds = recursiveChildren
. Where ( i = >
{
if ( ! string . IsNullOrEmpty ( gamesdb ) & &
string . Equals ( gamesdb , i . GetProviderId ( MetadataProviders . Gamesdb ) , StringComparison . OrdinalIgnoreCase ) & &
i is MusicAlbum )
{
return true ;
}
return false ;
} )
. Select ( GetClientItemId )
. ToArray ( ) ;
}
private void AttachSoundtrackIds ( BaseItemDto dto , MusicAlbum item , User user )
{
var tmdb = item . GetProviderId ( MetadataProviders . Tmdb ) ;
var tvdb = item . GetProviderId ( MetadataProviders . Tvdb ) ;
var gamesdb = item . GetProviderId ( MetadataProviders . Gamesdb ) ;
if ( string . IsNullOrEmpty ( tmdb ) & & string . IsNullOrEmpty ( tvdb ) & & string . IsNullOrEmpty ( gamesdb ) )
{
return ;
}
var recursiveChildren = user = = null
? _libraryManager . RootFolder . RecursiveChildren
: user . RootFolder . GetRecursiveChildren ( user ) ;
dto . SoundtrackIds = recursiveChildren
. Where ( i = >
{
if ( ! string . IsNullOrEmpty ( tmdb ) & &
string . Equals ( tmdb , i . GetProviderId ( MetadataProviders . Tmdb ) , StringComparison . OrdinalIgnoreCase ) & &
i is Movie )
{
return true ;
}
if ( ! string . IsNullOrEmpty ( tvdb ) & &
string . Equals ( tvdb , i . GetProviderId ( MetadataProviders . Tvdb ) , StringComparison . OrdinalIgnoreCase ) & &
i is Series )
{
return true ;
}
if ( ! string . IsNullOrEmpty ( gamesdb ) & &
string . Equals ( gamesdb , i . GetProviderId ( MetadataProviders . Gamesdb ) , StringComparison . OrdinalIgnoreCase ) & &
i is Game )
{
return true ;
}
return false ;
} )
. Select ( GetClientItemId )
. ToArray ( ) ;
}
/// <summary>
/// Attaches the user specific info.
/// </summary>
@ -682,6 +532,10 @@ namespace MediaBrowser.Controller.Dto
dto . AirDays = series . AirDays ;
dto . AirTime = series . AirTime ;
dto . Status = series . Status ;
dto . SpecialFeatureCount = series . SpecialFeatureIds . Count ;
dto . SeasonCount = series . SeasonCount ;
}
if ( episode ! = null )
@ -716,6 +570,18 @@ namespace MediaBrowser.Controller.Dto
{
SetMusicVideoProperties ( dto , musicVideo ) ;
}
var book = item as Book ;
if ( book ! = null )
{
SetBookProperties ( dto , book ) ;
}
}
private void SetBookProperties ( BaseItemDto dto , Book item )
{
dto . SeriesName = item . SeriesName ;
}
private void SetMusicVideoProperties ( BaseItemDto dto , MusicVideo item )