Class QueryBuilder<TQueryStrategy, TData>
Builds an System.Linq.IQueryable from a TQueryStrategy
.
Inheritance
System.Object
QueryBuilder<TQueryStrategy, TData>
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Assembly: Cqrs.dll
Syntax
public abstract class QueryBuilder<TQueryStrategy, TData> : IQueryBuilder<TQueryStrategy, TData> where TQueryStrategy : IQueryStrategy where TData : Entity
Type Parameters
Name |
Description |
TQueryStrategy |
The System.Type of the IQueryStrategy.
|
TData |
The System.Type of data to query.
|
Constructors
QueryBuilder(IDataStore<TData>, IDependencyResolver)
Declaration
protected QueryBuilder(IDataStore<TData> dataStore, IDependencyResolver dependencyResolver)
Parameters
Properties
DataStore
Declaration
protected IDataStore<TData> DataStore { get; }
Property Value
DependencyResolver
Declaration
protected IDependencyResolver DependencyResolver { get; }
Property Value
Methods
ApplySorting(TQueryStrategy, ref IQueryable<TData>)
Override to build or apply any sorting required to queryable
Declaration
protected virtual void ApplySorting(TQueryStrategy queryStrategy, ref IQueryable<TData> queryable)
Parameters
Type |
Name |
Description |
TQueryStrategy |
queryStrategy |
The TQueryStrategy with sorting information.
|
System.Linq.IQueryable<TData> |
queryable |
The System.Linq.IQueryable to apply sorting to.
|
CreateQueryable(ICollectionResultQuery<TQueryStrategy, TData>)
Create an System.Linq.IQueryable of TData
that expects a collection of TData
items.
Declaration
public virtual IQueryable<TData> CreateQueryable(ICollectionResultQuery<TQueryStrategy, TData> collectionResultQuery)
Parameters
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
Implements
CreateQueryable(ISingleResultQuery<TQueryStrategy, TData>)
Create an System.Linq.IQueryable of TData
that expects a single TData
item.
Declaration
public virtual IQueryable<TData> CreateQueryable(ISingleResultQuery<TQueryStrategy, TData> singleResultQuery)
Parameters
Type |
Name |
Description |
ISingleResultQuery<TQueryStrategy, TData> |
singleResultQuery |
The query.
|
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
Implements
GeneratePredicate(IQueryPredicate, IQueryable<TData>)
Declaration
protected virtual IQueryable<TData> GeneratePredicate(IQueryPredicate queryPredicate, IQueryable<TData> leftHandQueryable = null)
Parameters
Type |
Name |
Description |
IQueryPredicate |
queryPredicate |
|
System.Linq.IQueryable<TData> |
leftHandQueryable |
|
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
GeneratePredicate(QueryPredicate, IQueryable<TData>)
Override to build an System.Linq.IQueryable from the queryPredicate
and an optional leftHandQueryable
.
Declaration
protected abstract IQueryable<TData> GeneratePredicate(QueryPredicate queryPredicate, IQueryable<TData> leftHandQueryable = null)
Parameters
Type |
Name |
Description |
QueryPredicate |
queryPredicate |
|
System.Linq.IQueryable<TData> |
leftHandQueryable |
|
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
GeneratePredicateIsNotLogicallyDeleted(QueryPredicate, IQueryable<TData>)
Declaration
protected virtual IQueryable<TData> GeneratePredicateIsNotLogicallyDeleted(QueryPredicate queryPredicate, IQueryable<TData> leftHandQueryable = null)
Parameters
Type |
Name |
Description |
QueryPredicate |
queryPredicate |
|
System.Linq.IQueryable<TData> |
leftHandQueryable |
|
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
GeneratePredicateWithPermissionScopeAny<TAuthenticationToken>(QueryPredicate, IQueryable<TData>)
Declaration
protected virtual IQueryable<TData> GeneratePredicateWithPermissionScopeAny<TAuthenticationToken>(QueryPredicate queryPredicate, IQueryable<TData> leftHandQueryable)
Parameters
Type |
Name |
Description |
QueryPredicate |
queryPredicate |
|
System.Linq.IQueryable<TData> |
leftHandQueryable |
|
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
Type Parameters
Name |
Description |
TAuthenticationToken |
|
GeneratePredicateWithPermissionScopeCompany<TAuthenticationToken>(QueryPredicate, IQueryable<TData>)
Declaration
protected virtual IQueryable<TData> GeneratePredicateWithPermissionScopeCompany<TAuthenticationToken>(QueryPredicate queryPredicate, IQueryable<TData> leftHandQueryable)
Parameters
Type |
Name |
Description |
QueryPredicate |
queryPredicate |
|
System.Linq.IQueryable<TData> |
leftHandQueryable |
|
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
Type Parameters
Name |
Description |
TAuthenticationToken |
|
GeneratePredicateWithPermissionScopeCompanyAndUser<TAuthenticationToken>(QueryPredicate, IQueryable<TData>)
Declaration
protected virtual IQueryable<TData> GeneratePredicateWithPermissionScopeCompanyAndUser<TAuthenticationToken>(QueryPredicate queryPredicate, IQueryable<TData> leftHandQueryable)
Parameters
Type |
Name |
Description |
QueryPredicate |
queryPredicate |
|
System.Linq.IQueryable<TData> |
leftHandQueryable |
|
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
Type Parameters
Name |
Description |
TAuthenticationToken |
|
GeneratePredicateWithPermissionScopeUser<TAuthenticationToken>(QueryPredicate, IQueryable<TData>)
Declaration
protected virtual IQueryable<TData> GeneratePredicateWithPermissionScopeUser<TAuthenticationToken>(QueryPredicate queryPredicate, IQueryable<TData> leftHandQueryable)
Parameters
Type |
Name |
Description |
QueryPredicate |
queryPredicate |
|
System.Linq.IQueryable<TData> |
leftHandQueryable |
|
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
Type Parameters
Name |
Description |
TAuthenticationToken |
|
GetEmptyQueryPredicate()
Declaration
protected virtual IQueryable<TData> GetEmptyQueryPredicate()
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
GetFunctionName<TParameter1>(Func<TParameter1, TQueryStrategy>)
Gets the Name of the method in expression
Declaration
protected virtual string GetFunctionName<TParameter1>(Func<TParameter1, TQueryStrategy> expression)
Parameters
Type |
Name |
Description |
System.Func<TParameter1, TQueryStrategy> |
expression |
|
Returns
Type |
Description |
System.String |
|
Type Parameters
Name |
Description |
TParameter1 |
|
GetFunctionName<T>(Func<T>)
Gets the Name of the method in expression
Declaration
protected virtual string GetFunctionName<T>(Func<T> expression)
Parameters
Type |
Name |
Description |
System.Func<T> |
expression |
|
Returns
Type |
Description |
System.String |
|
Type Parameters
GetFunctionName<TParameter1, TParameter2>(Func<TParameter1, TParameter2, TQueryStrategy>)
Gets the Name of the method in expression
Declaration
protected virtual string GetFunctionName<TParameter1, TParameter2>(Func<TParameter1, TParameter2, TQueryStrategy> expression)
Parameters
Type |
Name |
Description |
System.Func<TParameter1, TParameter2, TQueryStrategy> |
expression |
|
Returns
Type |
Description |
System.String |
|
Type Parameters
Name |
Description |
TParameter1 |
|
TParameter2 |
|
GetFunctionName<TParameter1, TParameter2, TParameter3>(Func<TParameter1, TParameter2, TParameter3, TQueryStrategy>)
Gets the Name of the method in expression
Declaration
protected virtual string GetFunctionName<TParameter1, TParameter2, TParameter3>(Func<TParameter1, TParameter2, TParameter3, TQueryStrategy> expression)
Parameters
Type |
Name |
Description |
System.Func<TParameter1, TParameter2, TParameter3, TQueryStrategy> |
expression |
|
Returns
Type |
Description |
System.String |
|
Type Parameters
Name |
Description |
TParameter1 |
|
TParameter2 |
|
TParameter3 |
|
GetFunctionName<TParameter1, TParameter2, TParameter3, TParameter4>(Func<TParameter1, TParameter2, TParameter3, TParameter4, TQueryStrategy>)
Gets the Name of the method in expression
Declaration
protected virtual string GetFunctionName<TParameter1, TParameter2, TParameter3, TParameter4>(Func<TParameter1, TParameter2, TParameter3, TParameter4, TQueryStrategy> expression)
Parameters
Type |
Name |
Description |
System.Func<TParameter1, TParameter2, TParameter3, TParameter4, TQueryStrategy> |
expression |
|
Returns
Type |
Description |
System.String |
|
Type Parameters
Name |
Description |
TParameter1 |
|
TParameter2 |
|
TParameter3 |
|
TParameter4 |
|
GetFunctionName<TParameter1, TParameter2, TParameter3, TParameter4, TParameter5>(Func<TParameter1, TParameter2, TParameter3, TParameter4, TParameter5, TQueryStrategy>)
Gets the Name of the method in expression
Declaration
protected virtual string GetFunctionName<TParameter1, TParameter2, TParameter3, TParameter4, TParameter5>(Func<TParameter1, TParameter2, TParameter3, TParameter4, TParameter5, TQueryStrategy> expression)
Parameters
Type |
Name |
Description |
System.Func<TParameter1, TParameter2, TParameter3, TParameter4, TParameter5, TQueryStrategy> |
expression |
|
Returns
Type |
Description |
System.String |
|
Type Parameters
Name |
Description |
TParameter1 |
|
TParameter2 |
|
TParameter3 |
|
TParameter4 |
|
TParameter5 |
|
GetFunctionNameOfType<TParameter1>(Func<TParameter1, IQueryPredicate>)
Gets the Name of the method in expression
Declaration
protected virtual string GetFunctionNameOfType<TParameter1>(Func<TParameter1, IQueryPredicate> expression)
Parameters
Returns
Type |
Description |
System.String |
|
Type Parameters
Name |
Description |
TParameter1 |
|
GetNullQueryStrategy()
Uses System.Activator.CreateInstance``1 to create a new instance of TQueryStrategy
.
Declaration
protected virtual TQueryStrategy GetNullQueryStrategy()
Returns
Type |
Description |
TQueryStrategy |
|
OnGeneratePredicateWithPermissionScopeAny<TAuthenticationToken>(QueryPredicate, IQueryable<TData>)
Returns leftHandQueryable
or calls GetEmptyQueryPredicate() if leftHandQueryable
is null.
Override to build the relevant permission scope System.Linq.IQueryable.
Declaration
protected virtual IQueryable<TData> OnGeneratePredicateWithPermissionScopeAny<TAuthenticationToken>(QueryPredicate queryPredicate, IQueryable<TData> leftHandQueryable)
Parameters
Type |
Name |
Description |
QueryPredicate |
queryPredicate |
|
System.Linq.IQueryable<TData> |
leftHandQueryable |
|
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
Type Parameters
Name |
Description |
TAuthenticationToken |
|
OnGeneratePredicateWithPermissionScopeCompany<TAuthenticationToken>(QueryPredicate, IQueryable<TData>)
Returns leftHandQueryable
or calls GetEmptyQueryPredicate() if leftHandQueryable
is null.
Override to build the relevant permission scope System.Linq.IQueryable.
Declaration
protected virtual IQueryable<TData> OnGeneratePredicateWithPermissionScopeCompany<TAuthenticationToken>(QueryPredicate queryPredicate, IQueryable<TData> leftHandQueryable)
Parameters
Type |
Name |
Description |
QueryPredicate |
queryPredicate |
|
System.Linq.IQueryable<TData> |
leftHandQueryable |
|
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
Type Parameters
Name |
Description |
TAuthenticationToken |
|
OnGeneratePredicateWithPermissionScopeCompanyAndUser<TAuthenticationToken>(QueryPredicate, IQueryable<TData>)
Returns leftHandQueryable
or calls GetEmptyQueryPredicate() if leftHandQueryable
is null.
Override to build the relevant permission scope System.Linq.IQueryable.
Declaration
protected virtual IQueryable<TData> OnGeneratePredicateWithPermissionScopeCompanyAndUser<TAuthenticationToken>(QueryPredicate queryPredicate, IQueryable<TData> leftHandQueryable)
Parameters
Type |
Name |
Description |
QueryPredicate |
queryPredicate |
|
System.Linq.IQueryable<TData> |
leftHandQueryable |
|
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
Type Parameters
Name |
Description |
TAuthenticationToken |
|
OnGeneratePredicateWithPermissionScopeUser<TAuthenticationToken>(QueryPredicate, IQueryable<TData>)
Returns leftHandQueryable
or calls GetEmptyQueryPredicate() if leftHandQueryable
is null.
Override to build the relevant permission scope System.Linq.IQueryable.
Declaration
protected virtual IQueryable<TData> OnGeneratePredicateWithPermissionScopeUser<TAuthenticationToken>(QueryPredicate queryPredicate, IQueryable<TData> leftHandQueryable)
Parameters
Type |
Name |
Description |
QueryPredicate |
queryPredicate |
|
System.Linq.IQueryable<TData> |
leftHandQueryable |
|
Returns
Type |
Description |
System.Linq.IQueryable<TData> |
|
Type Parameters
Name |
Description |
TAuthenticationToken |
|