public PartialFindResult <DiscussionTopicContract> GetTopics( int?folderId = null, int start = 0, int maxResults = DefaultMax, bool getTotalCount = false, DiscussionTopicSortRule sort = DiscussionTopicSortRule.DateCreated, DiscussionTopicOptionalFields fields = DiscussionTopicOptionalFields.None) { return(HandleQuery(ctx => { var query = ctx.OfType <DiscussionTopic>() .Query() .WhereNotDeleted() .WhereIsInFolder(folderId); var topics = query .OrderBy(sort) .Paged(new PagingProperties(start, maxResults, getTotalCount)) .ToArray() .Select(f => new DiscussionTopicContract(f, _userIconFactory, fields)) .ToArray(); var count = (getTotalCount ? query.Count() : 0); return PartialFindResult.Create(topics, count); })); }
public static IQueryable <DiscussionTopic> OrderBy(this IQueryable <DiscussionTopic> query, DiscussionTopicSortRule sort) { switch (sort) { case DiscussionTopicSortRule.Name: return(query.OrderBy(d => d.Name)); case DiscussionTopicSortRule.DateCreated: return(query.OrderByDescending(d => d.Created)); case DiscussionTopicSortRule.LastCommentDate: return(query.OrderByDescending(d => d.Comments.Max(c => c.Created))); } return(query); }
public static IQueryable <DiscussionTopic> OrderBy(this IQueryable <DiscussionTopic> query, DiscussionTopicSortRule sort) => sort switch {
public PartialFindResult <DiscussionTopicContract> GetTopics( int?folderId = null, int start = 0, int maxResults = DefaultMax, bool getTotalCount = false, DiscussionTopicSortRule sort = DiscussionTopicSortRule.DateCreated, DiscussionTopicOptionalFields fields = DiscussionTopicOptionalFields.None) => _queries.GetTopics(folderId, start, maxResults, getTotalCount, sort, fields);