Skip to content

Commit

Permalink
Merge pull request #7324 from Maxr1998/sort-by-index
Browse files Browse the repository at this point in the history
  • Loading branch information
Bond-009 committed Mar 3, 2022
2 parents 2dbb329 + 0aaf2f4 commit b356c2b
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 0 deletions.
50 changes: 50 additions & 0 deletions Emby.Server.Implementations/Sorting/IndexNumberComparer.cs
@@ -0,0 +1,50 @@
using System;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Sorting;
using MediaBrowser.Model.Querying;

namespace Emby.Server.Implementations.Sorting
{
/// <summary>
/// Class IndexNumberComparer.
/// </summary>
public class IndexNumberComparer : IBaseItemComparer
{
/// <summary>
/// Gets the name.
/// </summary>
/// <value>The name.</value>
public string Name => ItemSortBy.IndexNumber;

/// <summary>
/// Compares the specified x.
/// </summary>
/// <param name="x">The x.</param>
/// <param name="y">The y.</param>
/// <returns>System.Int32.</returns>
public int Compare(BaseItem? x, BaseItem? y)
{
if (x == null)
{
throw new ArgumentNullException(nameof(x));
}

if (y == null)
{
throw new ArgumentNullException(nameof(y));
}

if (!x.IndexNumber.HasValue)
{
return -1;
}

if (!y.IndexNumber.HasValue)
{
return 1;
}

return x.IndexNumber.Value.CompareTo(y.IndexNumber.Value);
}
}
}
50 changes: 50 additions & 0 deletions Emby.Server.Implementations/Sorting/ParentIndexNumberComparer.cs
@@ -0,0 +1,50 @@
using System;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Sorting;
using MediaBrowser.Model.Querying;

namespace Emby.Server.Implementations.Sorting
{
/// <summary>
/// Class ParentIndexNumberComparer.
/// </summary>
public class ParentIndexNumberComparer : IBaseItemComparer
{
/// <summary>
/// Gets the name.
/// </summary>
/// <value>The name.</value>
public string Name => ItemSortBy.ParentIndexNumber;

/// <summary>
/// Compares the specified x.
/// </summary>
/// <param name="x">The x.</param>
/// <param name="y">The y.</param>
/// <returns>System.Int32.</returns>
public int Compare(BaseItem? x, BaseItem? y)
{
if (x == null)
{
throw new ArgumentNullException(nameof(x));
}

if (y == null)
{
throw new ArgumentNullException(nameof(y));
}

if (!x.ParentIndexNumber.HasValue)
{
return -1;
}

if (!y.ParentIndexNumber.HasValue)
{
return 1;
}

return x.ParentIndexNumber.Value.CompareTo(y.ParentIndexNumber.Value);
}
}
}
4 changes: 4 additions & 0 deletions MediaBrowser.Model/Querying/ItemSortBy.cs
Expand Up @@ -102,5 +102,9 @@ public static class ItemSortBy
public const string DateLastContentAdded = "DateLastContentAdded";

public const string SeriesDatePlayed = "SeriesDatePlayed";

public const string ParentIndexNumber = "ParentIndexNumber";

public const string IndexNumber = "IndexNumber";
}
}

0 comments on commit b356c2b

Please sign in to comment.