mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-03 19:17:24 -05:00 
			
		
		
		
	Fix activity log query.
This commit is contained in:
		
							parent
							
								
									4d7e7d6331
								
							
						
					
					
						commit
						d4a492ef93
					
				@ -45,7 +45,9 @@ namespace Jellyfin.Server.Implementations.Activity
 | 
			
		||||
        {
 | 
			
		||||
            await using var dbContext = _provider.CreateContext();
 | 
			
		||||
 | 
			
		||||
            IQueryable<ActivityLog> entries = dbContext.ActivityLogs.OrderByDescending(entry => entry.DateCreated);
 | 
			
		||||
            IQueryable<ActivityLog> entries = dbContext.ActivityLogs
 | 
			
		||||
                .AsQueryable()
 | 
			
		||||
                .OrderByDescending(entry => entry.DateCreated);
 | 
			
		||||
 | 
			
		||||
            if (query.MinDate.HasValue)
 | 
			
		||||
            {
 | 
			
		||||
@ -59,10 +61,11 @@ namespace Jellyfin.Server.Implementations.Activity
 | 
			
		||||
 | 
			
		||||
            return new QueryResult<ActivityLogEntry>
 | 
			
		||||
            {
 | 
			
		||||
                Items = await entries.Skip(query.StartIndex ?? 0)
 | 
			
		||||
                Items = await entries
 | 
			
		||||
                    .Skip(query.StartIndex ?? 0)
 | 
			
		||||
                    .Take(query.Limit ?? 100)
 | 
			
		||||
                    .AsAsyncEnumerable()
 | 
			
		||||
                    .Select(ConvertToOldModel)
 | 
			
		||||
                    .AsQueryable()
 | 
			
		||||
                    .ToListAsync()
 | 
			
		||||
                    .ConfigureAwait(false),
 | 
			
		||||
                TotalRecordCount = await entries.CountAsync().ConfigureAwait(false)
 | 
			
		||||
 | 
			
		||||
@ -24,6 +24,7 @@
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <PackageReference Include="System.Linq.Async" Version="4.1.1" />
 | 
			
		||||
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.8">
 | 
			
		||||
      <PrivateAssets>all</PrivateAssets>
 | 
			
		||||
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
 | 
			
		||||
 | 
			
		||||
@ -61,6 +61,7 @@ namespace Jellyfin.Server.Implementations.Users
 | 
			
		||||
        public IList<ItemDisplayPreferences> ListItemDisplayPreferences(Guid userId, string client)
 | 
			
		||||
        {
 | 
			
		||||
            return _dbContext.ItemDisplayPreferences
 | 
			
		||||
                .AsQueryable()
 | 
			
		||||
                .Where(prefs => prefs.UserId == userId && prefs.ItemId != Guid.Empty && string.Equals(prefs.Client, client))
 | 
			
		||||
                .ToList();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -108,6 +108,7 @@ namespace Jellyfin.Server.Implementations.Users
 | 
			
		||||
            {
 | 
			
		||||
                using var dbContext = _dbProvider.CreateContext();
 | 
			
		||||
                return dbContext.Users
 | 
			
		||||
                    .AsQueryable()
 | 
			
		||||
                    .Select(user => user.Id)
 | 
			
		||||
                    .ToList();
 | 
			
		||||
            }
 | 
			
		||||
@ -200,8 +201,8 @@ namespace Jellyfin.Server.Implementations.Users
 | 
			
		||||
        internal async Task<User> CreateUserInternalAsync(string name, JellyfinDb dbContext)
 | 
			
		||||
        {
 | 
			
		||||
            // TODO: Remove after user item data is migrated.
 | 
			
		||||
            var max = await dbContext.Users.AnyAsync().ConfigureAwait(false)
 | 
			
		||||
                ? await dbContext.Users.Select(u => u.InternalId).MaxAsync().ConfigureAwait(false)
 | 
			
		||||
            var max = await dbContext.Users.AsQueryable().AnyAsync().ConfigureAwait(false)
 | 
			
		||||
                ? await dbContext.Users.AsQueryable().Select(u => u.InternalId).MaxAsync().ConfigureAwait(false)
 | 
			
		||||
                : 0;
 | 
			
		||||
 | 
			
		||||
            return new User(
 | 
			
		||||
@ -221,7 +222,7 @@ namespace Jellyfin.Server.Implementations.Users
 | 
			
		||||
                throw new ArgumentException("Usernames can contain unicode symbols, numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            using var dbContext = _dbProvider.CreateContext();
 | 
			
		||||
            await using var dbContext = _dbProvider.CreateContext();
 | 
			
		||||
 | 
			
		||||
            var newUser = await CreateUserInternalAsync(name, dbContext).ConfigureAwait(false);
 | 
			
		||||
 | 
			
		||||
@ -587,9 +588,9 @@ namespace Jellyfin.Server.Implementations.Users
 | 
			
		||||
        public async Task InitializeAsync()
 | 
			
		||||
        {
 | 
			
		||||
            // TODO: Refactor the startup wizard so that it doesn't require a user to already exist.
 | 
			
		||||
            using var dbContext = _dbProvider.CreateContext();
 | 
			
		||||
            await using var dbContext = _dbProvider.CreateContext();
 | 
			
		||||
 | 
			
		||||
            if (await dbContext.Users.AnyAsync().ConfigureAwait(false))
 | 
			
		||||
            if (await dbContext.Users.AsQueryable().AnyAsync().ConfigureAwait(false))
 | 
			
		||||
            {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user