From 55670b91b26610655cd4c0528e3dd938b852b4fc Mon Sep 17 00:00:00 2001 From: crobibero Date: Sat, 23 Jan 2021 17:32:13 -0700 Subject: Use ArrayModelBinder for sortBy and sortOrder --- Jellyfin.Api/Helpers/RequestHelpers.cs | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) (limited to 'Jellyfin.Api/Helpers/RequestHelpers.cs') diff --git a/Jellyfin.Api/Helpers/RequestHelpers.cs b/Jellyfin.Api/Helpers/RequestHelpers.cs index efce11f8a7..056ad83daf 100644 --- a/Jellyfin.Api/Helpers/RequestHelpers.cs +++ b/Jellyfin.Api/Helpers/RequestHelpers.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using Jellyfin.Data.Entities; using Jellyfin.Data.Enums; @@ -8,7 +9,6 @@ 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; @@ -25,35 +25,22 @@ namespace Jellyfin.Api.Helpers /// Sort By. Comma delimited string. /// Sort Order. Comma delimited string. /// Order By. - public static ValueTuple[] GetOrderBy(string? sortBy, string? requestedSortOrder) + public static ValueTuple[] GetOrderBy(IReadOnlyList sortBy, IReadOnlyList requestedSortOrder) { - var val = sortBy; - - if (string.IsNullOrEmpty(val)) + if (sortBy.Count == 0) { return Array.Empty>(); } - var vals = val.Split(','); - if (string.IsNullOrWhiteSpace(requestedSortOrder)) + var result = new ValueTuple[sortBy.Count]; + for (var i = 0; i < sortBy.Count; i++) { - requestedSortOrder = "Ascending"; - } - - var sortOrders = requestedSortOrder.Split(','); - - var result = new ValueTuple[vals.Length]; + var sortOrderIndex = requestedSortOrder.Count > i ? i : 0; - for (var i = 0; i < vals.Length; i++) - { - var sortOrderIndex = sortOrders.Length > i ? i : 0; - - var sortOrderValue = sortOrders.Length > sortOrderIndex ? sortOrders[sortOrderIndex] : null; - var sortOrder = string.Equals(sortOrderValue, "Descending", StringComparison.OrdinalIgnoreCase) - ? SortOrder.Descending + var sortOrder = requestedSortOrder.Count > sortOrderIndex + ? requestedSortOrder[sortOrderIndex] : SortOrder.Ascending; - - result[i] = new ValueTuple(vals[i], sortOrder); + result[i] = new ValueTuple(sortBy[i], sortOrder); } return result; -- cgit v1.2.3