Merge pull request #12457 from lostb1t/feature/boxset-sort

Add support for ItemSortBy values in BoxSet
This commit is contained in:
Bond-009 2024-08-24 00:00:48 +02:00 committed by GitHub
commit 549c01c736
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -112,37 +112,31 @@ namespace MediaBrowser.Controller.Entities.Movies
return true;
}
private IEnumerable<BaseItem> Sort(IEnumerable<BaseItem> items, User user)
{
if (!Enum.TryParse<ItemSortBy>(DisplayOrder, out var sortBy))
{
sortBy = ItemSortBy.PremiereDate;
}
if (sortBy == ItemSortBy.Default)
{
return items;
}
return LibraryManager.Sort(items, user, new[] { sortBy }, SortOrder.Ascending);
}
public override List<BaseItem> GetChildren(User user, bool includeLinkedChildren, InternalItemsQuery query)
{
var children = base.GetChildren(user, includeLinkedChildren, query);
if (string.Equals(DisplayOrder, "SortName", StringComparison.OrdinalIgnoreCase))
{
// Sort by name
return LibraryManager.Sort(children, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending).ToList();
}
if (string.Equals(DisplayOrder, "PremiereDate", StringComparison.OrdinalIgnoreCase))
{
// Sort by release date
return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending).ToList();
}
// Default sorting
return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending).ToList();
return Sort(children, user).ToList();
}
public override IEnumerable<BaseItem> GetRecursiveChildren(User user, InternalItemsQuery query)
{
var children = base.GetRecursiveChildren(user, query);
if (string.Equals(DisplayOrder, "PremiereDate", StringComparison.OrdinalIgnoreCase))
{
// Sort by release date
return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending).ToList();
}
return children;
return Sort(children, user).ToList();
}
public BoxSetInfo GetLookupInfo()