Rework get children functions to support ItemSortBy values

pull/12457/head
lostb1t 8 months ago
parent ffecdfc18c
commit f737fad43a

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

Loading…
Cancel
Save