mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-01 21:38:27 +01:00
Fix warnings, improve performance (#1665)
* Fix warnings, improve performance `QueryResult.Items` is now a `IReadOnlyList` so we don't need to allocate a new `Array` when we have a `List` (and `Items` shouldn't need to be mutable anyway) * Update Providers .csproj to latest C# * Remove extra newline from DtoService.cs * Remove extra newline from UserLibraryService.cs
This commit is contained in:
@@ -741,7 +741,7 @@ namespace MediaBrowser.Api.LiveTv
|
||||
var result = new QueryResult<BaseItemDto>
|
||||
{
|
||||
Items = returnArray,
|
||||
TotalRecordCount = returnArray.Length
|
||||
TotalRecordCount = returnArray.Count
|
||||
};
|
||||
|
||||
return ToOptimizedResult(result);
|
||||
|
||||
@@ -243,7 +243,7 @@ namespace MediaBrowser.Api.Movies
|
||||
}
|
||||
}
|
||||
|
||||
return categories.OrderBy(i => i.RecommendationType).ThenBy(i => Guid.NewGuid());
|
||||
return categories.OrderBy(i => i.RecommendationType);
|
||||
}
|
||||
|
||||
private IEnumerable<RecommendationDto> GetWithDirector(User user, IEnumerable<string> names, int itemLimit, DtoOptions dtoOptions, RecommendationType type)
|
||||
|
||||
@@ -189,11 +189,9 @@ namespace MediaBrowser.Api
|
||||
|
||||
var dtos = _dtoService.GetBaseItemDtos(items.Select(i => i.Item2).ToList(), dtoOptions, user);
|
||||
|
||||
var index = 0;
|
||||
foreach (var item in dtos)
|
||||
for (int index = 0; index < dtos.Count; index++)
|
||||
{
|
||||
item.PlaylistItemId = items[index].Item1.Id;
|
||||
index++;
|
||||
dtos[index].PlaylistItemId = items[index].Item1.Id;
|
||||
}
|
||||
|
||||
var result = new QueryResult<BaseItemDto>
|
||||
|
||||
@@ -61,11 +61,6 @@ namespace MediaBrowser.Api
|
||||
|
||||
var dtoList = _dtoService.GetBaseItemDtos(result.Items, dtoOptions, user);
|
||||
|
||||
if (dtoList == null)
|
||||
{
|
||||
throw new InvalidOperationException("GetBaseItemDtos returned null");
|
||||
}
|
||||
|
||||
return new QueryResult<BaseItemDto>
|
||||
{
|
||||
TotalRecordCount = result.TotalRecordCount,
|
||||
|
||||
@@ -382,13 +382,13 @@ namespace MediaBrowser.Api
|
||||
throw new ResourceNotFoundException("Series not found");
|
||||
}
|
||||
|
||||
var seasons = (series.GetItemList(new InternalItemsQuery(user)
|
||||
var seasons = series.GetItemList(new InternalItemsQuery(user)
|
||||
{
|
||||
IsMissing = request.IsMissing,
|
||||
IsSpecialSeason = request.IsSpecialSeason,
|
||||
AdjacentTo = request.AdjacentTo
|
||||
|
||||
}));
|
||||
});
|
||||
|
||||
var dtoOptions = GetDtoOptions(_authContext, request);
|
||||
|
||||
@@ -396,7 +396,7 @@ namespace MediaBrowser.Api
|
||||
|
||||
return new QueryResult<BaseItemDto>
|
||||
{
|
||||
TotalRecordCount = returnItems.Length,
|
||||
TotalRecordCount = returnItems.Count,
|
||||
Items = returnItems
|
||||
};
|
||||
}
|
||||
|
||||
@@ -175,11 +175,6 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
|
||||
var dtoList = _dtoService.GetBaseItemDtos(result.Items, dtoOptions, user);
|
||||
|
||||
if (dtoList == null)
|
||||
{
|
||||
throw new InvalidOperationException("GetBaseItemDtos returned null");
|
||||
}
|
||||
|
||||
return new QueryResult<BaseItemDto>
|
||||
{
|
||||
TotalRecordCount = result.TotalRecordCount,
|
||||
|
||||
@@ -2,6 +2,7 @@ using System;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Controller.Dto;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.Audio;
|
||||
@@ -367,12 +368,20 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
var dtoOptions = GetDtoOptions(_authContext, request);
|
||||
|
||||
var dtosExtras = item.GetExtras(new[] { ExtraType.Trailer })
|
||||
.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item));
|
||||
.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item))
|
||||
.ToArray();
|
||||
|
||||
var dtosTrailers = item.GetTrailers()
|
||||
.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item));
|
||||
if (item is IHasTrailers hasTrailers)
|
||||
{
|
||||
var trailers = hasTrailers.GetTrailers();
|
||||
var dtosTrailers = _dtoService.GetBaseItemDtos(trailers, dtoOptions, user, item);
|
||||
var allTrailers = new BaseItemDto[dtosExtras.Length + dtosTrailers.Count];
|
||||
dtosExtras.CopyTo(allTrailers, 0);
|
||||
dtosTrailers.CopyTo(allTrailers, dtosExtras.Length);
|
||||
return ToOptimizedResult(allTrailers);
|
||||
}
|
||||
|
||||
return ToOptimizedResult(dtosExtras.Concat(dtosTrailers).ToArray());
|
||||
return ToOptimizedResult(dtosExtras);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -248,9 +248,14 @@ namespace MediaBrowser.Api
|
||||
private readonly INetworkManager _networkManager;
|
||||
private readonly IDeviceManager _deviceManager;
|
||||
private readonly IAuthorizationContext _authContext;
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public UserService(IUserManager userManager, ISessionManager sessionMananger, IServerConfigurationManager config, INetworkManager networkManager, IDeviceManager deviceManager, IAuthorizationContext authContext, ILoggerFactory loggerFactory)
|
||||
public UserService(
|
||||
IUserManager userManager,
|
||||
ISessionManager sessionMananger,
|
||||
IServerConfigurationManager config,
|
||||
INetworkManager networkManager,
|
||||
IDeviceManager deviceManager,
|
||||
IAuthorizationContext authContext)
|
||||
{
|
||||
_userManager = userManager;
|
||||
_sessionMananger = sessionMananger;
|
||||
@@ -258,7 +263,6 @@ namespace MediaBrowser.Api
|
||||
_networkManager = networkManager;
|
||||
_deviceManager = deviceManager;
|
||||
_authContext = authContext;
|
||||
_logger = loggerFactory.CreateLogger(nameof(UserService));
|
||||
}
|
||||
|
||||
public object Get(GetPublicUsers request)
|
||||
|
||||
Reference in New Issue
Block a user