private static Task <TModelReturn> Query <TModel, TData, TModelReturn, TDataReturn>(IContextRepository repository, IExpressionPart queryExpression) where TModel : BaseModel where TData : BaseData => repository.QueryAsync <TModel, TData, TModelReturn, TDataReturn> ( (Expression <Func <IQueryable <TModel>, TModelReturn> >)queryExpression.Build(), (SelectExpandDefinition)null );
private static Task <IEnumerable <dynamic> > Query <TModel, TData>(IContextRepository repository, IExpressionPart queryExpression) where TModel : BaseModel where TData : BaseData => repository.QueryAsync <TModel, TData, IEnumerable <dynamic>, IEnumerable <dynamic> > ( (Expression <Func <IQueryable <TModel>, IEnumerable <dynamic> > >)queryExpression.Build(), (SelectExpandDefinition)null );
private async static Task <TModel> QueryEntity <TModel, TData>(IContextRepository repository, IExpressionPart filterExpression, SelectExpandDefinition selectExpandDefinition = null) where TModel : BaseModel where TData : BaseData => ( await repository.GetAsync <TModel, TData> ( (Expression <Func <TModel, bool> >)filterExpression.Build(), null, selectExpandDefinition ) ).FirstOrDefault();
public static Expression <Func <TModel, bool> > GetFilter(IExpressionPart filterExpression) => (Expression <Func <TModel, bool> >)filterExpression?.Build();
public static Expression <Func <IQueryable <TModel>, IQueryable <TModel> > > GetQueryFunc(IExpressionPart selectorExpression) => (Expression <Func <IQueryable <TModel>, IQueryable <TModel> > >)selectorExpression?.Build();
Expression DoAggregation(Expression expression, IExpressionPart filterPart) => GroupOperatorFunctions[GroupOperatorType](expression, filterPart.Build());