BaseCollectionSpecification<T, TType> Class

Summary

Base implementation of Specification executed for collection elements
graph BT Type-->Base0["object"] Type-.->Interface0["IComplexSpecification<T>"] Type-.->Interface1["IValidationSpecification<T>"] Type-.->Interface2["ILinqSpecification<T>"] Type-.->Interface3["ILinqSpecification"] click Interface3 "/FluentSpecification/api/FluentSpecification.Abstractions/ILinqSpecification" Type-.->Interface4["ISpecification<T>"] Type-.->Interface5["ISpecification"] click Interface5 "/FluentSpecification/api/FluentSpecification.Abstractions/ISpecification" Type["BaseCollectionSpecification<T, TType>"] class Type type-node Derived0["AllSpecification<T, TType>"]-->Type click Derived0 "/FluentSpecification/api/FluentSpecification.Common/AllSpecification_2" Derived1["AnySpecification<T, TType>"]-->Type click Derived1 "/FluentSpecification/api/FluentSpecification.Common/AnySpecification_2"

Syntax

[PublicAPI]
public abstract class BaseCollectionSpecification<T, TType> : IComplexSpecification<T>, 
    IValidationSpecification<T>, ILinqSpecification<T>, ILinqSpecification, ISpecification<T>, 
    ISpecification
    where T : IEnumerable<TType>

Examples

See AllSpecification<T, TType> and AnySpecification<T, TType>.

Attributes

Type Description
PublicAPI

Type Parameters

Name Description
T Collection type to iterate (System.Collections.Generic.IEnumerable`1).
TType Type of collection element to verify.

Constructors

Name Summary
BaseCollectionSpecification(ISpecification<TType>, bool) Creates Specification for candidate (collection) elements.

Properties

Name Value Summary
CollectionElementCallMethodInfo MethodInfo
Method to call on candidate (collection) with CollectionElementSpecification.
CollectionElementSpecification IComplexSpecification<TType>
Specification executed for collection element.
OverallForEmpty bool
Overall result for empty candidate (collection).
TraceConnector string
String connector for elements trace.

Methods

Name Value Summary
CanContinue(bool, bool) bool
Checks if flow can be continued after each element result.
CreateFailedMessage() string
Gets validation failed message of whole Specification.
CreateFailedSpecifications(IReadOnlyCollection<FailedSpecification>, int) IEnumerable<FailedSpecification>
Changes error in each element od candidate.
CreateTraceMessage(string, bool) string
Creates trace message based on overall result and candidate content.
GetExpression() Expression<Func<T, bool>>
Combines Expression from TType Specification for all candidate elements.
GetParameters() IReadOnlyDictionary<string, object>
Get Specification internal/external parameters, used for candidate verification.
IsSatisfiedBy(T) bool
Checks if Specification is satisfied by candidate object.
IsSatisfiedBy(T, SpecificationResult) bool
Checks if Specification is satisfied by candidate elements. Elements are verified by TType Specification. Returns validation result no matter is satisfied or not.

Operators

Name Value Summary
explicit operator Expression(BaseCollectionSpecification<T, TType>) Expression
implicit operator Expression<Func<T, bool>>(BaseCollectionSpecification<T, TType>) Expression<Func<T, bool>>
implicit operator Func<T, bool>(BaseCollectionSpecification<T, TType>) Func<T, bool>

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