using System; using Jellyfin.Data.Enums; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Sorting; using MediaBrowser.Model.Querying; namespace Emby.Server.Implementations.Sorting { /// /// Class ArtistComparer. /// public class ArtistComparer : IBaseItemComparer { /// public ItemSortBy Type => ItemSortBy.Artist; /// public int Compare(BaseItem? x, BaseItem? y) { return string.Compare(GetValue(x), GetValue(y), StringComparison.OrdinalIgnoreCase); } /// /// Gets the value. /// /// The x. /// System.String. private static string? GetValue(BaseItem? x) { if (x is not Audio audio) { return string.Empty; } return audio.Artists.Count == 0 ? null : audio.Artists[0]; } } }