@@ -23,6 +23,7 @@ public static class QueryableExtensions
2323 /// <param name="options"></param>
2424 /// <param name="handleNullPropagation"></param>
2525 /// <returns></returns>
26+ [ Obsolete ( "\" Use ICollection<TModel> Get<TModel, TData>(this IQueryable<TData> query, IMapper mapper, ODataQueryOptions<TModel> options, QuerySettings querySettings)\" " ) ]
2627 public static ICollection < TModel > Get < TModel , TData > ( this IQueryable < TData > query , IMapper mapper , ODataQueryOptions < TModel > options , HandleNullPropagationOption handleNullPropagation = HandleNullPropagationOption . Default )
2728 where TModel : class
2829 => Task . Run ( async ( ) => await query . GetAsync ( mapper , options , handleNullPropagation ) ) . Result ;
@@ -39,8 +40,7 @@ public static ICollection<TModel> Get<TModel, TData>(this IQueryable<TData> quer
3940 /// <returns></returns>
4041 public static ICollection < TModel > Get < TModel , TData > ( this IQueryable < TData > query , IMapper mapper , ODataQueryOptions < TModel > options , QuerySettings querySettings )
4142 where TModel : class
42- => query . Get ( mapper , options , querySettings ? . ODataSettings ? . HandleNullPropagation ?? HandleNullPropagationOption . Default ) ;
43-
43+ => Task . Run ( async ( ) => await query . GetAsync ( mapper , options , querySettings ) ) . Result ;
4444
4545 /// <summary>
4646 /// GetAsync
@@ -50,28 +50,42 @@ public static ICollection<TModel> Get<TModel, TData>(this IQueryable<TData> quer
5050 /// <param name="query"></param>
5151 /// <param name="mapper"></param>
5252 /// <param name="options"></param>
53- /// <param name="handleNullPropagation "></param>
53+ /// <param name="querySettings "></param>
5454 /// <returns></returns>
55- public static async Task < ICollection < TModel > > GetAsync < TModel , TData > ( this IQueryable < TData > query , IMapper mapper , ODataQueryOptions < TModel > options , HandleNullPropagationOption handleNullPropagation = HandleNullPropagationOption . Default )
55+ public static async Task < ICollection < TModel > > GetAsync < TModel , TData > ( this IQueryable < TData > query , IMapper mapper , ODataQueryOptions < TModel > options , QuerySettings querySettings = null )
5656 where TModel : class
5757 {
5858 List < Expression < Func < TModel , object > > > includeExpressions = options . SelectExpand . GetIncludes ( ) . BuildIncludes < TModel > ( ) . ToList ( ) ;
59- Expression < Func < TModel , bool > > filter = options . Filter . ToFilterExpression < TModel > ( handleNullPropagation ) ;
60- Expression < Func < IQueryable < TModel > , IQueryable < TModel > > > queryableExpression = options . GetQueryableExpression ( ) ;
59+ Expression < Func < TModel , bool > > filter = options . Filter . ToFilterExpression < TModel > ( querySettings ? . ODataSettings ? . HandleNullPropagation ?? HandleNullPropagationOption . Default ) ;
60+ Expression < Func < IQueryable < TModel > , IQueryable < TModel > > > queryableExpression = options . GetQueryableExpression ( querySettings ? . ODataSettings ) ;
6161 Expression < Func < IQueryable < TModel > , long > > countExpression = LinqExtensions . GetCountExpression < TModel > ( filter ) ;
6262
6363 options . AddExpandOptionsResult ( ) ;
6464 if ( options . Count ? . Value == true )
6565 options . AddCountOptionsResult < TModel , TData > ( await query . QueryAsync ( mapper , countExpression ) ) ;
6666
67+ if ( querySettings ? . ODataSettings ? . PageSize . HasValue == true )
68+ options . AddNextLinkOptionsResult ( querySettings . ODataSettings . PageSize . Value ) ;
69+
6770 ICollection < TModel > collection = await query . GetAsync ( mapper , filter , queryableExpression , includeExpressions ) ;
6871
6972 return collection ;
7073 }
7174
72- public static async Task < ICollection < TModel > > GetAsync < TModel , TData > ( this IQueryable < TData > query , IMapper mapper , ODataQueryOptions < TModel > options , QuerySettings querySettings = null )
75+ /// <summary>
76+ /// GetAsync
77+ /// </summary>
78+ /// <typeparam name="TModel"></typeparam>
79+ /// <typeparam name="TData"></typeparam>
80+ /// <param name="query"></param>
81+ /// <param name="mapper"></param>
82+ /// <param name="options"></param>
83+ /// <param name="handleNullPropagation"></param>
84+ /// <returns></returns>
85+ [ Obsolete ( "\" Use Task<ICollection<TModel>> GetAsync<TModel, TData>(this IQueryable<TData> query, IMapper mapper, ODataQueryOptions<TModel> options, QuerySettings querySettings = null)\" " ) ]
86+ public static async Task < ICollection < TModel > > GetAsync < TModel , TData > ( this IQueryable < TData > query , IMapper mapper , ODataQueryOptions < TModel > options , HandleNullPropagationOption handleNullPropagation = HandleNullPropagationOption . Default )
7387 where TModel : class
74- => await query . GetAsync ( mapper , options , querySettings ? . ODataSettings ? . HandleNullPropagation ?? HandleNullPropagationOption . Default ) ;
88+ => await query . GetAsync ( mapper , options , new QuerySettings { ODataSettings = new ODataSettings { HandleNullPropagation = handleNullPropagation } } ) ;
7589
7690 /// <summary>
7791 /// GetQueryAsync
@@ -83,6 +97,7 @@ public static async Task<ICollection<TModel>> GetAsync<TModel, TData>(this IQuer
8397 /// <param name="options"></param>
8498 /// <param name="handleNullPropagation"></param>
8599 /// <returns></returns>
100+ [ Obsolete ( "\" Use Task<IQueryable<TModel>> GetQueryAsync<TModel, TData>(this IQueryable<TData> query, IMapper mapper, ODataQueryOptions<TModel> options, QuerySettings querySettings = null)\" " ) ]
86101 public static async Task < IQueryable < TModel > > GetQueryAsync < TModel , TData > ( this IQueryable < TData > query , IMapper mapper , ODataQueryOptions < TModel > options , HandleNullPropagationOption handleNullPropagation = HandleNullPropagationOption . Default )
87102 where TModel : class
88103 => await query . GetQueryAsync ( mapper , options , new QuerySettings { ODataSettings = new ODataSettings { HandleNullPropagation = handleNullPropagation } } ) ;
@@ -108,13 +123,16 @@ public static async Task<IQueryable<TModel>> GetQueryAsync<TModel, TData>(this I
108123 . ToList ( ) ;
109124
110125 Expression < Func < TModel , bool > > filter = options . Filter . ToFilterExpression < TModel > ( querySettings ? . ODataSettings ? . HandleNullPropagation ?? HandleNullPropagationOption . Default ) ;
111- Expression < Func < IQueryable < TModel > , IQueryable < TModel > > > queryableExpression = options . GetQueryableExpression ( ) ;
126+ Expression < Func < IQueryable < TModel > , IQueryable < TModel > > > queryableExpression = options . GetQueryableExpression ( querySettings ? . ODataSettings ) ;
112127 Expression < Func < IQueryable < TModel > , long > > countExpression = LinqExtensions . GetCountExpression < TModel > ( filter ) ;
113128
114129 options . AddExpandOptionsResult ( ) ;
115130 if ( options . Count ? . Value == true )
116131 options . AddCountOptionsResult < TModel , TData > ( await query . QueryAsync ( mapper , countExpression ) ) ;
117132
133+ if ( querySettings ? . ODataSettings ? . PageSize . HasValue == true )
134+ options . AddNextLinkOptionsResult ( querySettings . ODataSettings . PageSize . Value ) ;
135+
118136 IQueryable < TModel > queryable = await query . GetQueryAsync ( mapper , filter , queryableExpression , includeExpressions , querySettings ? . ProjectionSettings ) ;
119137
120138 return queryable . UpdateQueryableExpression ( expansions ) ;
0 commit comments