Esempio n. 1
0
        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
 {
Esempio n. 4
0
 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);