diff options
| author | Stepan <ste.martinek+git@gmail.com> | 2020-11-10 12:42:49 +0100 |
|---|---|---|
| committer | Stepan <ste.martinek+git@gmail.com> | 2020-11-10 12:42:49 +0100 |
| commit | c0747512d6d3973ac102ea4990d2e1fa44e5a5d1 (patch) | |
| tree | 2cf9ad33386422dfb00757237b68523e60284034 /Jellyfin.Api/Helpers/RequestHelpers.cs | |
| parent | 3d1076ae42433314835f4277ff42cd5ef1e6c016 (diff) | |
| parent | cdf979efef94dc29f4ef0b4ad3f918b4983560e5 (diff) | |
Merge remote-tracking branch 'jellyfin/master' into emby-namig-nullable
Diffstat (limited to 'Jellyfin.Api/Helpers/RequestHelpers.cs')
| -rw-r--r-- | Jellyfin.Api/Helpers/RequestHelpers.cs | 56 |
1 files changed, 33 insertions, 23 deletions
diff --git a/Jellyfin.Api/Helpers/RequestHelpers.cs b/Jellyfin.Api/Helpers/RequestHelpers.cs index 78d2b831c..13d6da317 100644 --- a/Jellyfin.Api/Helpers/RequestHelpers.cs +++ b/Jellyfin.Api/Helpers/RequestHelpers.cs @@ -1,11 +1,13 @@ using System; -using System.Collections.Generic; using System.Linq; -using System.Net; +using Jellyfin.Data.Entities; using Jellyfin.Data.Enums; using MediaBrowser.Common.Extensions; +using MediaBrowser.Controller.Dto; +using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Net; using MediaBrowser.Controller.Session; +using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Querying; using Microsoft.AspNetCore.Http; @@ -163,31 +165,39 @@ namespace Jellyfin.Api.Helpers .ToArray(); } - /// <summary> - /// Gets the item fields. - /// </summary> - /// <param name="imageTypes">The image types string.</param> - /// <returns>IEnumerable{ItemFields}.</returns> - internal static ImageType[] GetImageTypes(string? imageTypes) + internal static QueryResult<BaseItemDto> CreateQueryResult( + QueryResult<(BaseItem, ItemCounts)> result, + DtoOptions dtoOptions, + IDtoService dtoService, + bool includeItemTypes, + User? user) { - if (string.IsNullOrEmpty(imageTypes)) + var dtos = result.Items.Select(i => { - return Array.Empty<ImageType>(); - } + var (baseItem, counts) = i; + var dto = dtoService.GetItemByNameDto(baseItem, dtoOptions, null, user); - return Split(imageTypes, ',', true) - .Select(v => + if (includeItemTypes) { - if (Enum.TryParse(v, true, out ImageType value)) - { - return (ImageType?)value; - } - - return null; - }) - .Where(i => i.HasValue) - .Select(i => i!.Value) - .ToArray(); + dto.ChildCount = counts.ItemCount; + dto.ProgramCount = counts.ProgramCount; + dto.SeriesCount = counts.SeriesCount; + dto.EpisodeCount = counts.EpisodeCount; + dto.MovieCount = counts.MovieCount; + dto.TrailerCount = counts.TrailerCount; + dto.AlbumCount = counts.AlbumCount; + dto.SongCount = counts.SongCount; + dto.ArtistCount = counts.ArtistCount; + } + + return dto; + }); + + return new QueryResult<BaseItemDto> + { + Items = dtos.ToArray(), + TotalRecordCount = result.TotalRecordCount + }; } } } |
