CQRS.NET  2.2
A lightweight enterprise framework to write CQRS, event-sourced and micro-service applications in hybrid multi-datacentre, on-premise and Azure environments.
Cqrs.Repositories.Queries.QueryBuilder< TQueryStrategy, TData > Class Template Referenceabstract

Builds an IQueryable from a TQueryStrategy . More...

+ Inheritance diagram for Cqrs.Repositories.Queries.QueryBuilder< TQueryStrategy, TData >:

Public Member Functions

virtual IQueryable< TData > CreateQueryable (ISingleResultQuery< TQueryStrategy, TData > singleResultQuery)
 Create an IQueryable of TData that expects a single TData item. More...
 
virtual IQueryable< TData > CreateQueryable (ICollectionResultQuery< TQueryStrategy, TData > collectionResultQuery)
 Create an IQueryable of TData that expects a collection of TData items. More...
 

Protected Member Functions

 QueryBuilder (IDataStore< TData > dataStore, IDependencyResolver dependencyResolver)
 Instantiates a new instance of QueryBuilder<TQueryStrategy,TData>. More...
 
virtual IQueryable< TData > GetEmptyQueryPredicate ()
 Returns the DataStore itself. More...
 
virtual IQueryable< TData > GeneratePredicate (IQueryPredicate queryPredicate, IQueryable< TData > leftHandQueryable=null)
 Builds an IQueryable from the queryPredicate and an optional leftHandQueryable . This recursively calls itself and may call GeneratePredicateIsNotLogicallyDeleted. More...
 
virtual IQueryable< TData > GeneratePredicateIsNotLogicallyDeleted (QueryPredicate queryPredicate, IQueryable< TData > leftHandQueryable=null)
 Builds the relevant IQueryable for QueryStrategy.IsNotLogicallyDeleted. More...
 
virtual IQueryable< TData > GeneratePredicateWithPermissionScopeAny< TAuthenticationToken > (QueryPredicate queryPredicate, IQueryable< TData > leftHandQueryable)
 Builds the relevant IQueryable for QueryStrategy.WithPermissionScopeAny<TAuthenticationToken>. More...
 
virtual IQueryable< TData > OnGeneratePredicateWithPermissionScopeAny< TAuthenticationToken > (QueryPredicate queryPredicate, IQueryable< TData > leftHandQueryable)
 Returns leftHandQueryable or calls GetEmptyQueryPredicate if leftHandQueryable is null. Override to build the relevant permission scope IQueryable. More...
 
virtual IQueryable< TData > GeneratePredicateWithPermissionScopeUser< TAuthenticationToken > (QueryPredicate queryPredicate, IQueryable< TData > leftHandQueryable)
 Builds the relevant IQueryable for QueryStrategy.WithPermissionScopeUser<TAuthenticationToken>. More...
 
virtual IQueryable< TData > OnGeneratePredicateWithPermissionScopeUser< TAuthenticationToken > (QueryPredicate queryPredicate, IQueryable< TData > leftHandQueryable)
 Returns leftHandQueryable or calls GetEmptyQueryPredicate if leftHandQueryable is null. Override to build the relevant permission scope IQueryable. More...
 
virtual IQueryable< TData > GeneratePredicateWithPermissionScopeCompany< TAuthenticationToken > (QueryPredicate queryPredicate, IQueryable< TData > leftHandQueryable)
 Builds the relevant IQueryable for QueryStrategy.WithPermissionScopeCompany<TAuthenticationToken>. More...
 
virtual IQueryable< TData > OnGeneratePredicateWithPermissionScopeCompany< TAuthenticationToken > (QueryPredicate queryPredicate, IQueryable< TData > leftHandQueryable)
 Returns leftHandQueryable or calls GetEmptyQueryPredicate if leftHandQueryable is null. Override to build the relevant permission scope IQueryable. More...
 
virtual IQueryable< TData > GeneratePredicateWithPermissionScopeCompanyAndUser< TAuthenticationToken > (QueryPredicate queryPredicate, IQueryable< TData > leftHandQueryable)
 Builds the relevant IQueryable for QueryStrategy.WithPermissionScopeCompanyAndUser<TAuthenticationToken>. More...
 
virtual IQueryable< TData > OnGeneratePredicateWithPermissionScopeCompanyAndUser< TAuthenticationToken > (QueryPredicate queryPredicate, IQueryable< TData > leftHandQueryable)
 Returns leftHandQueryable or calls GetEmptyQueryPredicate if leftHandQueryable is null. Override to build the relevant permission scope IQueryable. More...
 
abstract IQueryable< TData > GeneratePredicate (QueryPredicate queryPredicate, IQueryable< TData > leftHandQueryable=null)
 Override to build an IQueryable from the queryPredicate and an optional leftHandQueryable . More...
 
virtual string GetFunctionNameOfType< TParameter1 > (Func< TParameter1, IQueryPredicate > expression)
 Gets the Name of the method in expression More...
 
virtual string GetFunctionName< T > (Func< T > expression)
 Gets the Name of the method in expression More...
 
virtual string GetFunctionName< TParameter1 > (Func< TParameter1, TQueryStrategy > expression)
 Gets the Name of the method in expression More...
 
virtual string GetFunctionName< TParameter1, TParameter2 > (Func< TParameter1, TParameter2, TQueryStrategy > expression)
 Gets the Name of the method in expression More...
 
virtual string GetFunctionName< TParameter1, TParameter2, TParameter3 > (Func< TParameter1, TParameter2, TParameter3, TQueryStrategy > expression)
 Gets the Name of the method in expression More...
 
virtual string GetFunctionName< TParameter1, TParameter2, TParameter3, TParameter4 > (Func< TParameter1, TParameter2, TParameter3, TParameter4, TQueryStrategy > expression)
 Gets the Name of the method in expression More...
 
virtual string GetFunctionName< TParameter1, TParameter2, TParameter3, TParameter4, TParameter5 > (Func< TParameter1, TParameter2, TParameter3, TParameter4, TParameter5, TQueryStrategy > expression)
 Gets the Name of the method in expression More...
 
virtual TQueryStrategy GetNullQueryStrategy ()
 Uses Activator.CreateInstance<T> to create a new instance of TQueryStrategy . More...
 
virtual void ApplySorting (TQueryStrategy queryStrategy, ref IQueryable< TData > queryable)
 Override to build or apply any sorting required to queryable More...
 

Properties

IDataStore< TData > DataStore [get]
 Gets or set the IDataStore<TData> to use. More...
 
IDependencyResolver DependencyResolver [get]
 Gets or set the IDependencyResolver. More...
 

Detailed Description

Builds an IQueryable from a TQueryStrategy .

Template Parameters
TQueryStrategyThe Type of the IQueryStrategy.
TDataThe Type of data to query.
Type Constraints
TQueryStrategy :IQueryStrategy 
TData :Entity