/// <inheritdoc/> public async Task <QueryResult <ActivityLogEntry> > GetPagedResultAsync(ActivityLogQuery query) { await using var dbContext = _provider.CreateContext(); IQueryable <ActivityLog> entries = dbContext.ActivityLogs .AsQueryable() .OrderByDescending(entry => entry.DateCreated); if (query.MinDate.HasValue) { entries = entries.Where(entry => entry.DateCreated >= query.MinDate); } if (query.HasUserId.HasValue) { entries = entries.Where(entry => entry.UserId != Guid.Empty == query.HasUserId.Value); } return(new QueryResult <ActivityLogEntry>( query.Skip, await entries.CountAsync().ConfigureAwait(false), await entries .Skip(query.Skip ?? 0) .Take(query.Limit ?? 100) .AsAsyncEnumerable() .Select(ConvertToOldModel) .ToListAsync() .ConfigureAwait(false))); }
/// <summary> Gets report activities. </summary> /// <param name="request"> The request. </param> /// <returns> The report activities. </returns> private async Task <ReportResult> GetReportActivities(IReportsDownload request) { var activityLogQuery = new ActivityLogQuery { StartIndex = request.StartIndex, Limit = request.HasQueryLimit ? request.Limit : null }; var queryResult = await _activityManager.GetPagedResultAsync(activityLogQuery).ConfigureAwait(false); ReportActivitiesBuilder builder = new ReportActivitiesBuilder(_libraryManager, _userManager); var result = builder.GetResult(queryResult, request); result.TotalRecordCount = queryResult.TotalRecordCount; return(result); }
/// <inheritdoc/> public async Task <QueryResult <ActivityLogEntry> > GetPagedResultAsync(ActivityLogQuery query) { await using var dbContext = _provider.CreateContext(); IQueryable <ActivityLog> entries = dbContext.ActivityLogs .AsQueryable() .OrderByDescending(entry => entry.DateCreated); if (query.MinDate.HasValue) { entries = entries.Where(entry => entry.DateCreated >= query.MinDate); } if (query.HasUserId.HasValue) { entries = entries.Where(entry => (!entry.UserId.Equals(default)) == query.HasUserId.Value);