aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Server.Implementations/Sorting/AlbumArtistComparer.cs24
1 files changed, 22 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/Sorting/AlbumArtistComparer.cs b/MediaBrowser.Server.Implementations/Sorting/AlbumArtistComparer.cs
index 2493c0fc6..583280f0f 100644
--- a/MediaBrowser.Server.Implementations/Sorting/AlbumArtistComparer.cs
+++ b/MediaBrowser.Server.Implementations/Sorting/AlbumArtistComparer.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Entities;
+using System.Linq;
+using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Sorting;
using MediaBrowser.Model.Querying;
@@ -31,7 +32,26 @@ namespace MediaBrowser.Server.Implementations.Sorting
{
var audio = x as Audio;
- return audio == null ? string.Empty : audio.AlbumArtist;
+ if (audio != null)
+ {
+ return audio.AlbumArtist;
+ }
+
+ var album = x as MusicAlbum;
+
+ if (album != null)
+ {
+ var song = album.RecursiveChildren
+ .OfType<Audio>()
+ .FirstOrDefault(i => !string.IsNullOrEmpty(i.AlbumArtist));
+
+ if (song != null)
+ {
+ return song.AlbumArtist;
+ }
+ }
+
+ return null;
}
/// <summary>