public PartialFindResult <SongListForApiContract> GetFeaturedLists( string query = "", NameMatchMode nameMatchMode = NameMatchMode.Auto, SongListFeaturedCategory?featuredCategory = null, int start = 0, int maxResults = defaultMax, bool getTotalCount = false, SongListSortRule sort = SongListSortRule.Name) { var textQuery = SearchTextQuery.Create(query, nameMatchMode); return(queries.Find(s => new SongListForApiContract(s, userIconFactory, entryImagePersister, SongListOptionalFields.MainPicture), textQuery, featuredCategory, start, maxResults, getTotalCount, sort)); }
public PartialFindResult <SongListForApiContract> GetSongLists( int id, string query = "", NameMatchMode nameMatchMode = NameMatchMode.Auto, int start = 0, int maxResults = defaultMax, bool getTotalCount = false, SongListSortRule sort = SongListSortRule.Name, SongListOptionalFields?fields = null) { var textQuery = SearchTextQuery.Create(query, nameMatchMode); return(queries.GetCustomSongLists(id, textQuery, sort, new PagingProperties(start, maxResults, getTotalCount), fields ?? SongListOptionalFields.None)); }
public PartialFindResult <SongListForApiContract> GetSongLists( int id, string query = "", [FromUri] int[] tagId = null, bool childTags = false, NameMatchMode nameMatchMode = NameMatchMode.Auto, int start = 0, int maxResults = defaultMax, bool getTotalCount = false, SongListSortRule sort = SongListSortRule.Name, SongListOptionalFields?fields = null) { var textQuery = SearchTextQuery.Create(query, nameMatchMode); var queryParams = new SongListQueryParams { TextQuery = textQuery, SortRule = sort, Paging = new PagingProperties(start, maxResults, getTotalCount), TagIds = tagId, ChildTags = childTags }; return(queries.GetCustomSongLists(id, queryParams, fields ?? SongListOptionalFields.None)); }
public PartialFindResult <SongListForApiContract> GetFeaturedLists( string query = "", [FromUri] int[] tagId = null, bool childTags = false, NameMatchMode nameMatchMode = NameMatchMode.Auto, SongListFeaturedCategory?featuredCategory = null, int start = 0, int maxResults = defaultMax, bool getTotalCount = false, SongListSortRule sort = SongListSortRule.Name, SongListOptionalFields fields = SongListOptionalFields.None, ContentLanguagePreference lang = ContentLanguagePreference.Default) { var textQuery = SearchTextQuery.Create(query, nameMatchMode); var queryParams = new SongListQueryParams { TextQuery = textQuery, FeaturedCategory = featuredCategory, Paging = new PagingProperties(start, maxResults, getTotalCount), SortRule = sort, TagIds = tagId, ChildTags = childTags }; return(queries.Find(s => new SongListForApiContract(s, lang, userIconFactory, entryImagePersister, fields), queryParams)); }
public static IQueryable <SongList> OrderBy(this IQueryable <SongList> query, SongListSortRule sortRule) => sortRule switch {
public static IQueryable <SongList> OrderBy(this IQueryable <SongList> query, SongListSortRule sortRule) { switch (sortRule) { case SongListSortRule.Date: return(query .OrderByDate(SortDirection.Descending) .ThenBy(r => r.Name)); case SongListSortRule.CreateDate: return(query.OrderByDescending(r => r.CreateDate)); case SongListSortRule.Name: return(query.OrderBy(r => r.Name)); } return(query); }
public PartialFindResult <TResult> Find <TResult>(Func <SongList, TResult> fac, SearchTextQuery textQuery, SongListFeaturedCategory?featuredCategory, int start, int maxResults, bool getTotalCount, SongListSortRule sort) { return(HandleQuery(ctx => { var listQuery = ctx.Query() .WhereHasFeaturedCategory(featuredCategory, false) .WhereHasName(textQuery); var count = getTotalCount ? listQuery.Count() : 0; return new PartialFindResult <TResult>(listQuery .OrderBy(sort) .Paged(new PagingProperties(start, maxResults, getTotalCount)) .ToArray() .Select(s => fac(s)) .ToArray(), count); })); }