diff options
Diffstat (limited to 'MediaBrowser.Controller/Dto')
| -rw-r--r-- | MediaBrowser.Controller/Dto/DtoBuilder.cs | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/MediaBrowser.Controller/Dto/DtoBuilder.cs b/MediaBrowser.Controller/Dto/DtoBuilder.cs index e66235510..ede1a1e84 100644 --- a/MediaBrowser.Controller/Dto/DtoBuilder.cs +++ b/MediaBrowser.Controller/Dto/DtoBuilder.cs @@ -420,15 +420,25 @@ namespace MediaBrowser.Controller.Dto } // Add audio info - var audio = item as Audio; - if (audio != null) + if (fields.Contains(ItemFields.AudioInfo)) { - if (fields.Contains(ItemFields.AudioInfo)) + var audio = item as Audio; + if (audio != null) { dto.Album = audio.Album; dto.AlbumArtist = audio.AlbumArtist; dto.Artist = audio.Artist; } + + var album = item as MusicAlbum; + + if (album != null) + { + var songs = album.Children.OfType<Audio>().ToList(); + + dto.AlbumArtist = songs.Select(i => i.AlbumArtist).FirstOrDefault(i => !string.IsNullOrEmpty(i)); + dto.Artist = songs.Select(i => i.Artist).FirstOrDefault(i => !string.IsNullOrEmpty(i)); + } } // Add video info @@ -503,6 +513,13 @@ namespace MediaBrowser.Controller.Dto dto.SeriesName = series.Name; } } + + var game = item as BaseGame; + + if (game != null) + { + dto.Players = game.PlayersSupported; + } } /// <summary> @@ -521,7 +538,7 @@ namespace MediaBrowser.Controller.Dto double totalPercentPlayed = 0; // Loop through each recursive child - foreach (var child in folder.GetRecursiveChildren(user).Where(i => !i.IsFolder)) + foreach (var child in folder.GetRecursiveChildren(user).Where(i => !i.IsFolder).ToList()) { var userdata = await userDataRepository.GetUserData(user.Id, child.GetUserDataKey()).ConfigureAwait(false); |
