aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server.Implementations/Activity/ActivityManager.cs
diff options
context:
space:
mode:
authorPatrick Barron <barronpm@gmail.com>2023-01-16 11:49:59 -0500
committerPatrick Barron <barronpm@gmail.com>2023-01-16 11:49:59 -0500
commitf07553abdf9c3b1462a94de154ec0072cdbf686a (patch)
tree75ff78313c3afb47b7c884ee776a610c9ce003ec /Jellyfin.Server.Implementations/Activity/ActivityManager.cs
parentab6baf6486601b6693e98339e2a41646196f0e76 (diff)
Optimize EF Core queries and remove unnecessary AsQueryable calls
Diffstat (limited to 'Jellyfin.Server.Implementations/Activity/ActivityManager.cs')
-rw-r--r--Jellyfin.Server.Implementations/Activity/ActivityManager.cs28
1 files changed, 14 insertions, 14 deletions
diff --git a/Jellyfin.Server.Implementations/Activity/ActivityManager.cs b/Jellyfin.Server.Implementations/Activity/ActivityManager.cs
index 9d6ca6aab..fc03cd6ae 100644
--- a/Jellyfin.Server.Implementations/Activity/ActivityManager.cs
+++ b/Jellyfin.Server.Implementations/Activity/ActivityManager.cs
@@ -48,18 +48,10 @@ namespace Jellyfin.Server.Implementations.Activity
var dbContext = await _provider.CreateDbContextAsync().ConfigureAwait(false);
await using (dbContext.ConfigureAwait(false))
{
- IQueryable<ActivityLog> entries = dbContext.ActivityLogs
- .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);
- }
+ var entries = dbContext.ActivityLogs
+ .OrderByDescending(entry => entry.DateCreated)
+ .Where(entry => query.MinDate == null || entry.DateCreated >= query.MinDate)
+ .Where(entry => !query.HasUserId.HasValue || entry.UserId.Equals(default) != query.HasUserId.Value);
return new QueryResult<ActivityLogEntry>(
query.Skip,
@@ -67,8 +59,16 @@ namespace Jellyfin.Server.Implementations.Activity
await entries
.Skip(query.Skip ?? 0)
.Take(query.Limit ?? 100)
- .AsAsyncEnumerable()
- .Select(ConvertToOldModel)
+ .Select(entity => new ActivityLogEntry(entity.Name, entity.Type, entity.UserId)
+ {
+ Id = entity.Id,
+ Overview = entity.Overview,
+ ShortOverview = entity.ShortOverview,
+ ItemId = entity.ItemId,
+ Date = entity.DateCreated,
+ Severity = entity.LogSeverity
+ })
+ .AsQueryable()
.ToListAsync()
.ConfigureAwait(false));
}