Skip to content

Commit 5abf5c5

Browse files
shuebner-zeissjaredcnance
authored andcommitted
moved Filter into an IQueryable extension method
1 parent 65a2a0f commit 5abf5c5

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

src/JsonApiDotNetCore/Data/DefaultEntityRepository.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,7 @@ public virtual IQueryable<TEntity> Get()
5858

5959
public virtual IQueryable<TEntity> Filter(IQueryable<TEntity> entities, FilterQuery filterQuery)
6060
{
61-
if (filterQuery == null)
62-
return entities;
63-
64-
if (filterQuery.IsAttributeOfRelationship)
65-
return entities.Filter(new RelatedAttrFilterQuery(_jsonApiContext, filterQuery));
66-
67-
return entities.Filter(new AttrFilterQuery(_jsonApiContext, filterQuery));
61+
return entities.Filter(_jsonApiContext, filterQuery);
6862
}
6963

7064
public virtual IQueryable<TEntity> Sort(IQueryable<TEntity> entities, List<SortQuery> sortQueries)

src/JsonApiDotNetCore/Extensions/IQueryableExtensions.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,17 @@ private static IOrderedQueryable<TSource> CallGenericOrderMethod<TSource>(IQuery
7777
return (IOrderedQueryable<TSource>)result;
7878
}
7979

80+
public static IQueryable<TSource> Filter<TSource>(this IQueryable<TSource> source, IJsonApiContext jsonApiContext, FilterQuery filterQuery)
81+
{
82+
if (filterQuery == null)
83+
return source;
84+
85+
if (filterQuery.IsAttributeOfRelationship)
86+
return source.Filter(new RelatedAttrFilterQuery(jsonApiContext, filterQuery));
87+
88+
return source.Filter(new AttrFilterQuery(jsonApiContext, filterQuery));
89+
}
90+
8091
public static IQueryable<TSource> Filter<TSource>(this IQueryable<TSource> source, AttrFilterQuery filterQuery)
8192
{
8293
if (filterQuery == null)

0 commit comments

Comments
 (0)