namespace Mixonomer.Playlist.Sort; public static class SortExtensions { private static Random _rng = new Random(); public static IOrderedEnumerable OrderByArtistAlbumTrackNumber(this IEnumerable input) => input.OrderBy(x => x.AlbumArtistNames.First()) .ThenBy(x => x.AlbumName) .ThenBy(x => x.DiscNumber) .ThenBy(x => x.TrackNumber); public static IOrderedEnumerable OrderByReleaseDate(this IEnumerable input) => input.OrderByDescending(x => x.ReleaseDate) .ThenBy(x => x.AlbumArtistNames.First()) .ThenBy(x => x.AlbumName) .ThenBy(x => x.DiscNumber) .ThenBy(x => x.TrackNumber); public static IOrderedEnumerable Shuffle(this IEnumerable input) => input.OrderBy(x => _rng.Next()); }