aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Dto/DtoBuilder.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Dto/DtoBuilder.cs')
-rw-r--r--MediaBrowser.Controller/Dto/DtoBuilder.cs25
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);