ComplexSpecification<T> Class

Summary

graph BT Type-->Base0["NegatableValidationSpecification<T>"] Base0-->Base1["ValidationSpecification<T>"] Base1-->Base2["object"] Type-.->Interface0["INegatableValidationSpecification<T>"] Type-.->Interface1["IComplexSpecification<T>"] Type-.->Interface2["IValidationSpecification<T>"] Type-.->Interface3["ILinqSpecification<T>"] Type-.->Interface4["ILinqSpecification"] click Interface4 "/FluentSpecification/api/FluentSpecification.Abstractions/ILinqSpecification" Type-.->Interface5["ISpecification<T>"] Type-.->Interface6["INegatableLinqSpecification<T>"] Type-.->Interface7["INegatableSpecification<T>"] Type-.->Interface8["ISpecification"] click Interface8 "/FluentSpecification/api/FluentSpecification.Abstractions/ISpecification" Type["ComplexSpecification<T>"] class Type type-node Derived0["CreditCardSpecification"]-->Type click Derived0 "/FluentSpecification/api/FluentSpecification.Common/CreditCardSpecification" Derived1["BaseLengthSpecification<T>"]-->Type click Derived1 "/FluentSpecification/api/FluentSpecification.Common.Abstractions/BaseLengthSpecification_1" Derived2["ContainsSpecification"]-->Type click Derived2 "/FluentSpecification/api/FluentSpecification.Common/ContainsSpecification" Derived3["BaseBetweenSpecification<T>"]-->Type click Derived3 "/FluentSpecification/api/FluentSpecification.Common.Abstractions/BaseBetweenSpecification_1" Derived4["TrueSpecification"]-->Type click Derived4 "/FluentSpecification/api/FluentSpecification.Common/TrueSpecification" Derived5["MatchSpecification"]-->Type click Derived5 "/FluentSpecification/api/FluentSpecification.Common/MatchSpecification" Derived6["BaseCompareSpecification<T>"]-->Type click Derived6 "/FluentSpecification/api/FluentSpecification.Common.Abstractions/BaseCompareSpecification_1" Derived7["FalseSpecification"]-->Type click Derived7 "/FluentSpecification/api/FluentSpecification.Common/FalseSpecification" Derived8["NullSpecification<T>"]-->Type click Derived8 "/FluentSpecification/api/FluentSpecification.Common/NullSpecification_1" Derived9["EmailSpecification"]-->Type click Derived9 "/FluentSpecification/api/FluentSpecification.Common/EmailSpecification" Derived10["EqualSpecification<T>"]-->Type click Derived10 "/FluentSpecification/api/FluentSpecification.Common/EqualSpecification_1" Derived11["IsTypeSpecification<T>"]-->Type click Derived11 "/FluentSpecification/api/FluentSpecification.Common/IsTypeSpecification_1" Derived12["EmptySpecification<T>"]-->Type click Derived12 "/FluentSpecification/api/FluentSpecification.Common/EmptySpecification_1" Derived13["ContainsSpecification<T, TType>"]-->Type click Derived13 "/FluentSpecification/api/FluentSpecification.Common/ContainsSpecification_2"

Syntax

[PublicAPI]
public abstract class ComplexSpecification<T> : NegatableValidationSpecification<T>, 
    INegatableValidationSpecification<T>, IComplexSpecification<T>, IValidationSpecification<T>, 
    ILinqSpecification<T>, ILinqSpecification, ISpecification<T>, INegatableLinqSpecification<T>, 
    INegatableSpecification<T>, ISpecification

Attributes

Type Description
PublicAPI

Type Parameters

Name Description
T Type of candidate to verify.

Methods

Name Value Summary
BuildExpressionBody(Expression) Expression
Creates special Expression body when T is non-value or nullable type.
BuildValueTypeExpressionBody(Expression) Expression
Creates special Expression body when T is value non-nullable type.
GetExpression() Expression<Func<T, bool>>
Gets typed lambda Linq Expression with candidate object verification.
GetNegationExpression() Expression<Func<T, bool>>
Gets typed lambda Linq Expression with candidate object verification.
IsSatisfiedBy(T) bool
Checks if Specification is satisfied by candidate object.

Operators

Name Value Summary
explicit operator Expression(ComplexSpecification<T>) Expression
implicit operator Expression<Func<T, bool>>(ComplexSpecification<T>) Expression<Func<T, bool>>
implicit operator Func<T, bool>(ValidationSpecification<T>) Func<T, bool>
Inherited from ValidationSpecification<T>

Extension Methods

Name Value Summary
And<T, TSpecification>() IComplexSpecification<T>
Creates logical AND Specification with newly created TSpecification.
And<T>() ICompositeSpecification<T>
Creates composite Specification proxy for final logical AND Specification.
And<T>(ISpecification<T>) IComplexSpecification<T>
Creates logical AND Specification.
AndNot<T, TSpecification>() IComplexSpecification<T>
Creates logical AND Specification with newly created and negated TSpecification.
AndNot<T>() ICompositeSpecification<T>
Creates composite Specification proxy for final logical AND Specification. Second Specification is negated.
AndNot<T>(ISpecification<T>) IComplexSpecification<T>
Creates logical AND Specification with negated other.
AsComplexSpecification<T>() IComplexSpecification<T>
Converts Specification to complex Specification.
AsExpression<T>() Expression<Func<T, bool>>
Converts Specification to Linq Expression<T>.
AsPredicate<T>() Func<T, bool>
Converts Specification to Func<T, TResult> predicate.
Not<T>() IComplexSpecification<T>
Creates logical NOT Specification.
Or<T, TSpecification>() IComplexSpecification<T>
Creates logical OR Specification with newly created TSpecification.
Or<T>() ICompositeSpecification<T>
Creates composite Specification proxy for final logical OR Specification.
Or<T>(ISpecification<T>) IComplexSpecification<T>
Creates logical OR Specification.
OrNot<T, TSpecification>() IComplexSpecification<T>
Creates logical OR Specification with newly created and negated TSpecification.
OrNot<T>() ICompositeSpecification<T>
Creates composite Specification proxy for final logical OR Specification. Second Specification is negated.
OrNot<T>(ISpecification<T>) IComplexSpecification<T>
Creates logical OR Specification with negated other.
WithMessage<T>(Func<T, IReadOnlyDictionary<string, object>, string>) IComplexSpecification<T>
Creates validation Specification proxy with specific error message factory where not satisfied by.
WithMessage<T>(Func<T, string>) IComplexSpecification<T>
Creates validation Specification proxy with specific error message factory where not satisfied by.
WithMessage<T>(string) IComplexSpecification<T>
Creates validation Specification proxy with specific error message where not satisfied by.
GitHub