public PartialFindResult <ActivityEntryForApiContract> GetList( DateTime?before = null, DateTime?since = null, int?userId = null, EntryEditEvent?editEvent = null, EntryType entryType = EntryType.Undefined, int maxResults = DefaultMax, bool getTotalCount = false, ActivityEntryOptionalFields fields = ActivityEntryOptionalFields.None, EntryOptionalFields entryFields = EntryOptionalFields.None, ContentLanguagePreference lang = ContentLanguagePreference.Default, ActivityEntrySortRule sortRule = ActivityEntrySortRule.CreateDateDescending ) => _queries.GetList(before, since, userId, editEvent, entryType, maxResults, getTotalCount, fields, entryFields, lang, sortRule);
public static IQueryable <ActivityEntry> OrderBy(this IQueryable <ActivityEntry> queryable, ActivityEntrySortRule sortRule) => sortRule switch {
public PartialFindResult <ActivityEntryForApiContract> GetList( DateTime?before = null, DateTime?since = null, int?userId = null, EntryEditEvent?editEvent = null, EntryType entryType = EntryType.Undefined, int maxResults = DefaultMax, bool getTotalCount = false, ActivityEntryOptionalFields fields = ActivityEntryOptionalFields.None, EntryOptionalFields entryFields = EntryOptionalFields.None, ContentLanguagePreference lang = ContentLanguagePreference.Default, ActivityEntrySortRule sortRule = ActivityEntrySortRule.CreateDateDescending) { maxResults = Math.Min(maxResults, AbsoluteMax); return(_repository.HandleQuery(ctx => { var query = ctx.Query <ActivityEntry>(); if (before.HasValue && !since.HasValue) { query = query.Where(a => a.CreateDate < before.Value); } if (!before.HasValue && since.HasValue) { query = query.Where(a => a.CreateDate > since.Value); } if (before.HasValue && since.HasValue) { query = query.Where(a => a.CreateDate > since.Value && a.CreateDate < before.Value); } if (userId.HasValue) { query = query.Where(a => a.Author.Id == userId.Value); } if (editEvent.HasValue) { query = query.Where(a => a.EditEvent == editEvent.Value); } if (entryType != EntryType.Undefined) { query = query.Where(a => a.EntryType == entryType); } var activityEntries = query .OrderBy(sortRule) .Take(maxResults) .ToArray() .Where(a => !a.EntryBase.Deleted) .Select(a => new ActivityEntryForApiContract(a, fields.HasFlag(ActivityEntryOptionalFields.Entry) ? _entryForApiContractFactory.Create(a.EntryBase, entryFields, lang) : null, _userIconFactory, _permissionContext, fields)) .ToArray(); var count = getTotalCount ? query.Count() : 0; return PartialFindResult.Create(activityEntries, count); })); }