public static IQueryable <Artist> OrderBy( this IQueryable <Artist> criteria, ArtistSortRule sortRule, ContentLanguagePreference languagePreference) { switch (sortRule) { case ArtistSortRule.Name: return(FindHelpers.AddNameOrder(criteria, languagePreference)); case ArtistSortRule.AdditionDate: return(criteria.OrderByDescending(a => a.CreateDate)); case ArtistSortRule.AdditionDateAsc: return(criteria.OrderBy(a => a.CreateDate)); case ArtistSortRule.ReleaseDate: return(OrderByReleaseDate(criteria, SortDirection.Descending)); case ArtistSortRule.SongCount: return(criteria.OrderByDescending(a => a.AllSongs.Count(s => !s.Song.Deleted))); case ArtistSortRule.SongRating: return(criteria.OrderByDescending(a => a.AllSongs .Where(s => !s.Song.Deleted) .Sum(s => s.Song.RatingScore))); case ArtistSortRule.FollowerCount: return(criteria.OrderByDescending(a => a.Users.Count)); } return(criteria); }
public static IQueryable <Album> AddOrder(IQueryable <Album> criteria, AlbumSortRule sortRule, ContentLanguagePreference languagePreference) { switch (sortRule) { case AlbumSortRule.Name: return(FindHelpers.AddNameOrder(criteria, languagePreference)); case AlbumSortRule.ReleaseDate: return(AddReleaseRestriction(criteria) .OrderByDescending(a => a.OriginalRelease.ReleaseDate.Year) .ThenByDescending(a => a.OriginalRelease.ReleaseDate.Month) .ThenByDescending(a => a.OriginalRelease.ReleaseDate.Day)); case AlbumSortRule.AdditionDate: return(criteria.OrderByDescending(a => a.CreateDate)); case AlbumSortRule.RatingAverage: return(criteria.OrderByDescending(a => a.RatingAverageInt) .ThenByDescending(a => a.RatingCount)); case AlbumSortRule.NameThenReleaseDate: return(FindHelpers.AddNameOrder(criteria, languagePreference) .ThenBy(a => a.OriginalRelease.ReleaseDate.Year) .ThenBy(a => a.OriginalRelease.ReleaseDate.Month) .ThenBy(a => a.OriginalRelease.ReleaseDate.Day)); } return(criteria); }
private IQueryOver <Artist, Artist> AddOrder(IQueryOver <Artist, Artist> criteria, ArtistSortRule sortRule, ContentLanguagePreference languagePreference) { switch (sortRule) { case ArtistSortRule.Name: return(FindHelpers.AddNameOrder(criteria, languagePreference)); case ArtistSortRule.AdditionDate: return(criteria.OrderBy(a => a.CreateDate).Desc); } return(criteria); }
public static IQueryable <Album> OrderBy( this IQueryable <Album> query, EntrySortRule sortRule, ContentLanguagePreference languagePreference) { switch (sortRule) { case EntrySortRule.Name: return(FindHelpers.AddNameOrder(query, languagePreference)); case EntrySortRule.AdditionDate: return(query.OrderByDescending(a => a.CreateDate)); } return(query); }
public static IQueryable <Album> OrderBy(this IQueryable <Album> criteria, AlbumSortRule sortRule, ContentLanguagePreference languagePreference) { switch (sortRule) { case AlbumSortRule.Name: return(FindHelpers.AddNameOrder(criteria, languagePreference)); case AlbumSortRule.CollectionCount: return(criteria.OrderByDescending(a => a.UserCollections.Count)); case AlbumSortRule.ReleaseDate: return(criteria.OrderByReleaseDate(SortDirection.Descending)); case AlbumSortRule.ReleaseDateWithNulls: return(criteria.OrderByReleaseDate(SortDirection.Descending)); case AlbumSortRule.AdditionDate: return(criteria.OrderByDescending(a => a.CreateDate)); case AlbumSortRule.RatingAverage: return(criteria.OrderByDescending(a => a.RatingAverageInt) .ThenByDescending(a => a.RatingCount)); case AlbumSortRule.RatingTotal: return(criteria.OrderByDescending(a => a.RatingTotal) .ThenByDescending(a => a.RatingAverageInt)); case AlbumSortRule.NameThenReleaseDate: return(FindHelpers.AddNameOrder(criteria, languagePreference) .ThenBy(a => a.OriginalRelease.ReleaseDate.Year) .ThenBy(a => a.OriginalRelease.ReleaseDate.Month) .ThenBy(a => a.OriginalRelease.ReleaseDate.Day)); } return(criteria); }
public static IOrderedQueryable <T> ThenByEntryName <T>(this IOrderedQueryable <T> criteria, ContentLanguagePreference languagePreference) where T : IEntryWithNames { return(FindHelpers.AddNameOrder(criteria, languagePreference)); }