コード例 #1
0
ファイル: ActivityManager.cs プロジェクト: weweyes/jellyfin
        /// <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)));
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);