Skip to content

Commit 09e7fcd

Browse files
shuebner-zeissjaredcnance
authored andcommitted
moved Sort into an IQueryable extension method
1 parent 61c5b4d commit 09e7fcd

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

src/JsonApiDotNetCore/Data/DefaultEntityRepository.cs

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -69,17 +69,7 @@ public virtual IQueryable<TEntity> Filter(IQueryable<TEntity> entities, FilterQu
6969

7070
public virtual IQueryable<TEntity> Sort(IQueryable<TEntity> entities, List<SortQuery> sortQueries)
7171
{
72-
if (sortQueries == null || sortQueries.Count == 0)
73-
return entities;
74-
75-
var orderedEntities = entities.Sort(sortQueries[0]);
76-
77-
if (sortQueries.Count <= 1) return orderedEntities;
78-
79-
for (var i = 1; i < sortQueries.Count; i++)
80-
orderedEntities = orderedEntities.Sort(sortQueries[i]);
81-
82-
return orderedEntities;
72+
return entities.Sort(sortQueries);
8373
}
8474

8575
public virtual async Task<TEntity> GetAsync(TId id)

src/JsonApiDotNetCore/Extensions/IQueryableExtensions.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,30 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using System.Linq.Expressions;
5-
using System.Reflection;
65
using JsonApiDotNetCore.Internal;
76
using JsonApiDotNetCore.Internal.Query;
7+
using JsonApiDotNetCore.Services;
88

99
namespace JsonApiDotNetCore.Extensions
1010
{
1111
// ReSharper disable once InconsistentNaming
1212
public static class IQueryableExtensions
1313
{
14+
public static IQueryable<TSource> Sort<TSource>(this IQueryable<TSource> source, List<SortQuery> sortQueries)
15+
{
16+
if (sortQueries == null || sortQueries.Count == 0)
17+
return source;
18+
19+
var orderedEntities = source.Sort(sortQueries[0]);
20+
21+
if (sortQueries.Count <= 1) return orderedEntities;
22+
23+
for (var i = 1; i < sortQueries.Count; i++)
24+
orderedEntities = orderedEntities.Sort(sortQueries[i]);
25+
26+
return orderedEntities;
27+
}
28+
1429
public static IOrderedQueryable<TSource> Sort<TSource>(this IQueryable<TSource> source, SortQuery sortQuery)
1530
{
1631
return sortQuery.Direction == SortDirection.Descending

0 commit comments

Comments
 (0)