aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Api/Extensions/DtoExtensions.cs
diff options
context:
space:
mode:
authorShadowghost <Ghost_of_Stone@web.de>2023-02-15 22:40:07 +0100
committerShadowghost <Ghost_of_Stone@web.de>2023-02-15 22:40:07 +0100
commit3a91c37283eb633e7e55df78b8017a5a492923b6 (patch)
tree4e22db9a5234c63370195992a28c64891d7a6cc1 /Jellyfin.Api/Extensions/DtoExtensions.cs
parent4eba16c6726564b159e395e188ec89f69d990e52 (diff)
parent3fe64f69b747f39a6505e4fad1bbd6eaf63cecc4 (diff)
Merge branch 'master' into network-rewrite
Diffstat (limited to 'Jellyfin.Api/Extensions/DtoExtensions.cs')
-rw-r--r--Jellyfin.Api/Extensions/DtoExtensions.cs172
1 files changed, 85 insertions, 87 deletions
diff --git a/Jellyfin.Api/Extensions/DtoExtensions.cs b/Jellyfin.Api/Extensions/DtoExtensions.cs
index 9e784f7c4..2d7a56d91 100644
--- a/Jellyfin.Api/Extensions/DtoExtensions.cs
+++ b/Jellyfin.Api/Extensions/DtoExtensions.cs
@@ -5,112 +5,110 @@ using Jellyfin.Extensions;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Querying;
-using Microsoft.AspNetCore.Http;
-namespace Jellyfin.Api.Extensions
+namespace Jellyfin.Api.Extensions;
+
+/// <summary>
+/// Dto Extensions.
+/// </summary>
+public static class DtoExtensions
{
/// <summary>
- /// Dto Extensions.
+ /// Add additional fields depending on client.
/// </summary>
- public static class DtoExtensions
+ /// <remarks>
+ /// Use in place of GetDtoOptions.
+ /// Legacy order: 2.
+ /// </remarks>
+ /// <param name="dtoOptions">DtoOptions object.</param>
+ /// <param name="user">Current claims principal.</param>
+ /// <returns>Modified DtoOptions object.</returns>
+ internal static DtoOptions AddClientFields(
+ this DtoOptions dtoOptions, ClaimsPrincipal user)
{
- /// <summary>
- /// Add additional fields depending on client.
- /// </summary>
- /// <remarks>
- /// Use in place of GetDtoOptions.
- /// Legacy order: 2.
- /// </remarks>
- /// <param name="dtoOptions">DtoOptions object.</param>
- /// <param name="user">Current claims principal.</param>
- /// <returns>Modified DtoOptions object.</returns>
- internal static DtoOptions AddClientFields(
- this DtoOptions dtoOptions, ClaimsPrincipal user)
- {
- dtoOptions.Fields ??= Array.Empty<ItemFields>();
+ dtoOptions.Fields ??= Array.Empty<ItemFields>();
- string? client = user.GetClient();
+ string? client = user.GetClient();
- // No client in claim
- if (string.IsNullOrEmpty(client))
- {
- return dtoOptions;
- }
+ // No client in claim
+ if (string.IsNullOrEmpty(client))
+ {
+ return dtoOptions;
+ }
- if (!dtoOptions.ContainsField(ItemFields.RecursiveItemCount))
+ if (!dtoOptions.ContainsField(ItemFields.RecursiveItemCount))
+ {
+ if (client.IndexOf("kodi", StringComparison.OrdinalIgnoreCase) != -1 ||
+ client.IndexOf("wmc", StringComparison.OrdinalIgnoreCase) != -1 ||
+ client.IndexOf("media center", StringComparison.OrdinalIgnoreCase) != -1 ||
+ client.IndexOf("classic", StringComparison.OrdinalIgnoreCase) != -1)
{
- if (client.IndexOf("kodi", StringComparison.OrdinalIgnoreCase) != -1 ||
- client.IndexOf("wmc", StringComparison.OrdinalIgnoreCase) != -1 ||
- client.IndexOf("media center", StringComparison.OrdinalIgnoreCase) != -1 ||
- client.IndexOf("classic", StringComparison.OrdinalIgnoreCase) != -1)
- {
- int oldLen = dtoOptions.Fields.Count;
- var arr = new ItemFields[oldLen + 1];
- dtoOptions.Fields.CopyTo(arr, 0);
- arr[oldLen] = ItemFields.RecursiveItemCount;
- dtoOptions.Fields = arr;
- }
+ int oldLen = dtoOptions.Fields.Count;
+ var arr = new ItemFields[oldLen + 1];
+ dtoOptions.Fields.CopyTo(arr, 0);
+ arr[oldLen] = ItemFields.RecursiveItemCount;
+ dtoOptions.Fields = arr;
}
+ }
- if (!dtoOptions.ContainsField(ItemFields.ChildCount))
+ if (!dtoOptions.ContainsField(ItemFields.ChildCount))
+ {
+ if (client.IndexOf("kodi", StringComparison.OrdinalIgnoreCase) != -1 ||
+ client.IndexOf("wmc", StringComparison.OrdinalIgnoreCase) != -1 ||
+ client.IndexOf("media center", StringComparison.OrdinalIgnoreCase) != -1 ||
+ client.IndexOf("classic", StringComparison.OrdinalIgnoreCase) != -1 ||
+ client.IndexOf("roku", StringComparison.OrdinalIgnoreCase) != -1 ||
+ client.IndexOf("samsung", StringComparison.OrdinalIgnoreCase) != -1 ||
+ client.IndexOf("androidtv", StringComparison.OrdinalIgnoreCase) != -1)
{
- if (client.IndexOf("kodi", StringComparison.OrdinalIgnoreCase) != -1 ||
- client.IndexOf("wmc", StringComparison.OrdinalIgnoreCase) != -1 ||
- client.IndexOf("media center", StringComparison.OrdinalIgnoreCase) != -1 ||
- client.IndexOf("classic", StringComparison.OrdinalIgnoreCase) != -1 ||
- client.IndexOf("roku", StringComparison.OrdinalIgnoreCase) != -1 ||
- client.IndexOf("samsung", StringComparison.OrdinalIgnoreCase) != -1 ||
- client.IndexOf("androidtv", StringComparison.OrdinalIgnoreCase) != -1)
- {
- int oldLen = dtoOptions.Fields.Count;
- var arr = new ItemFields[oldLen + 1];
- dtoOptions.Fields.CopyTo(arr, 0);
- arr[oldLen] = ItemFields.ChildCount;
- dtoOptions.Fields = arr;
- }
+ int oldLen = dtoOptions.Fields.Count;
+ var arr = new ItemFields[oldLen + 1];
+ dtoOptions.Fields.CopyTo(arr, 0);
+ arr[oldLen] = ItemFields.ChildCount;
+ dtoOptions.Fields = arr;
}
-
- return dtoOptions;
}
- /// <summary>
- /// Add additional DtoOptions.
- /// </summary>
- /// <remarks>
- /// Converted from IHasDtoOptions.
- /// Legacy order: 3.
- /// </remarks>
- /// <param name="dtoOptions">DtoOptions object.</param>
- /// <param name="enableImages">Enable images.</param>
- /// <param name="enableUserData">Enable user data.</param>
- /// <param name="imageTypeLimit">Image type limit.</param>
- /// <param name="enableImageTypes">Enable image types.</param>
- /// <returns>Modified DtoOptions object.</returns>
- internal static DtoOptions AddAdditionalDtoOptions(
- this DtoOptions dtoOptions,
- bool? enableImages,
- bool? enableUserData,
- int? imageTypeLimit,
- IReadOnlyList<ImageType> enableImageTypes)
- {
- dtoOptions.EnableImages = enableImages ?? true;
+ return dtoOptions;
+ }
- if (imageTypeLimit.HasValue)
- {
- dtoOptions.ImageTypeLimit = imageTypeLimit.Value;
- }
+ /// <summary>
+ /// Add additional DtoOptions.
+ /// </summary>
+ /// <remarks>
+ /// Converted from IHasDtoOptions.
+ /// Legacy order: 3.
+ /// </remarks>
+ /// <param name="dtoOptions">DtoOptions object.</param>
+ /// <param name="enableImages">Enable images.</param>
+ /// <param name="enableUserData">Enable user data.</param>
+ /// <param name="imageTypeLimit">Image type limit.</param>
+ /// <param name="enableImageTypes">Enable image types.</param>
+ /// <returns>Modified DtoOptions object.</returns>
+ internal static DtoOptions AddAdditionalDtoOptions(
+ this DtoOptions dtoOptions,
+ bool? enableImages,
+ bool? enableUserData,
+ int? imageTypeLimit,
+ IReadOnlyList<ImageType> enableImageTypes)
+ {
+ dtoOptions.EnableImages = enableImages ?? true;
- if (enableUserData.HasValue)
- {
- dtoOptions.EnableUserData = enableUserData.Value;
- }
+ if (imageTypeLimit.HasValue)
+ {
+ dtoOptions.ImageTypeLimit = imageTypeLimit.Value;
+ }
- if (enableImageTypes.Count != 0)
- {
- dtoOptions.ImageTypes = enableImageTypes;
- }
+ if (enableUserData.HasValue)
+ {
+ dtoOptions.EnableUserData = enableUserData.Value;
+ }
- return dtoOptions;
+ if (enableImageTypes.Count != 0)
+ {
+ dtoOptions.ImageTypes = enableImageTypes;
}
+
+ return dtoOptions;
}
}