private IQueryable AddOrderByQueryForProperty(IQueryable query, ODataQuerySettings querySettings, OrderByClause orderbyClause, IQueryable querySoFar, OrderByDirection direction, bool alreadyOrdered) { ODataQuerySettings updatedSettings = Context.UpdateQuerySettings(querySettings, query); LambdaExpression orderByExpression = FilterBinder.Bind(query, orderbyClause, Context.ElementClrType, Context, updatedSettings); querySoFar = ExpressionHelpers.OrderBy(querySoFar, orderByExpression, direction, Context.ElementClrType, alreadyOrdered); return(querySoFar); }
private IQueryable AddOrderByQueryForProperty(IQueryable query, ODataQuerySettings querySettings, OrderByClause orderbyClause, IQueryable querySoFar, OrderByDirection direction, bool alreadyOrdered) { // TODO: //Context.UpdateQuerySettings(querySettings, query); LambdaExpression orderByExpression = FilterBinder.Bind(orderbyClause, Context.ElementClrType, Context.RequestContainer); //FilterBinder.Bind(orderbyClause, Context.ElementClrType, /*Context.RequestContainer*/ null); querySoFar = ExpressionHelpers.OrderBy(querySoFar, orderByExpression, direction, Context.ElementClrType, alreadyOrdered); return(querySoFar); }
private IQueryable AddOrderByQueryForProperty(IQueryable query, ODataQuerySettings querySettings, OrderByClause orderbyClause, IQueryable querySoFar, OrderByDirection direction, bool alreadyOrdered) { // TODO: //Context.UpdateQuerySettings(querySettings, query); var services = new ServiceCollection(); services.AddSingleton <ODataQuerySettings>(querySettings); services.AddSingleton <IEdmModel>(Context.Model); services.AddSingleton <IAssemblyProvider>(_assemblyProvider); var requestContainer = services.BuildServiceProvider(); LambdaExpression orderByExpression = //FilterBinder.Bind(orderbyClause, Context.ElementClrType, /*Context.RequestContainer*/ null); FilterBinder.Bind(orderbyClause, Context.ElementClrType, requestContainer); querySoFar = ExpressionHelpers.OrderBy(querySoFar, orderByExpression, direction, Context.ElementClrType, alreadyOrdered); return(querySoFar); }
private IQueryable AddOrderByQueryForProperty(IQueryable query, ODataQuerySettings querySettings, OrderByClause orderbyClause, IQueryable querySoFar, OrderByDirection direction, bool alreadyOrdered) { // Ensure we have decided how to handle null propagation ODataQuerySettings updatedSettings = querySettings; if (querySettings.HandleNullPropagation == HandleNullPropagationOption.Default) { updatedSettings = new ODataQuerySettings(updatedSettings); updatedSettings.HandleNullPropagation = HandleNullPropagationOptionHelper.GetDefaultHandleNullPropagationOption(query); } LambdaExpression orderByExpression = FilterBinder.Bind( orderbyClause, Context.ElementClrType, Context.Model, updatedSettings, Context.AssembliesResolver); querySoFar = ExpressionHelpers.OrderBy(querySoFar, orderByExpression, direction, Context.ElementClrType, alreadyOrdered); return(querySoFar); }