Table of Contents

Namespace Motiv

Classes

AsyncPolicyBase<TModel, TMetadata>

The base class for asynchronous policies. A policy is a specification that resolves to a single value — one assertion or one metadata object per evaluation. Mirrors PolicyBase<TModel, TMetadata>.

AsyncSpecBase<TModel>

The base class for asynchronous specifications. Mirrors SpecBase<TModel> but evaluates asynchronously via EvaluateAsync(TModel, CancellationToken) and MatchesAsync(TModel, CancellationToken). Async specifications share the non-generic SpecBase root so that names, descriptions, and underlying-spec traversal behave identically to their synchronous counterparts.

AsyncSpecBase<TModel, TMetadata>

The base class for asynchronous specifications that yield metadata. Mirrors SpecBase<TModel, TMetadata> for asynchronous evaluation. Results are the same immutable BooleanResultBase<TMetadata> instances produced by synchronous specifications.

AsyncSpec<TModel>

Represents an asynchronous proposition that defines a condition for a model of type TModel. This proposition is associated with a string metadata.

AsyncSpec<TModel, TMetadata>

Represents an asynchronous proposition that yields custom metadata based on the outcome of the underlying spec/predicate.

BooleanResultBase

Represents a base class for boolean results.

BooleanResultBase<TMetadata>

Represents a base class for boolean results with metadata.

BooleanResultExtensions

Provides extension methods for working with enumerable collections.

BooleanResultsCollection<TModel, TMetadata>

A collection of boolean results for a set of models.

Display

Provides hints to the serialization process.

ExplanationExtensions

Provides extension methods for explanations.

ExpressionPolicyBase<TModel, TMetadata>

The base class for policies that retain a recoverable predicate expression tree. A policy resolves to a single assertion or metadata value per evaluation, and this variant additionally allows the composed predicate expression to be recovered via ToExpression() for use with query providers.

ExpressionSpecBase<TModel, TMetadata>

The base class for propositions that retain a recoverable predicate expression tree. Composing instances of this type (or ExpressionPolicyBase<TModel, TMetadata>) with the logical operators yields propositions that are themselves expression-backed, so the composed expression can be recovered via ToExpression() and used with query providers.

ExpressionTreeExtensions

Provides extension methods for working with expression trees.

MetadataExtensions

Provides extension methods over custom metadata objects..

ModelResultExtensions

Extension methods for collections of ModelResult<TModel>.

Operator

Boolean operations supported by Motiv

PolicyBase<TModel, TMetadata>

Represents a "policy" whereby an arbitrary rule causes a single metadata instance to be returned for both the true and false conditions.

PolicyExtensions

Extension methods for Policy<TModel, TMetadata>.

PolicyResultBase<TMetadata>

Represents a "policy result" whereby an arbitrary rule causes a single metadata instance to be returned.

PolicyResultExtensions

Extension methods for PolicyResultBase<TMetadata>.

Policy<TModel>

Represents a "policy" whereby an arbitrary rule causes a single metadata instance to be returned for either the true and false condition. The metadata is a string.

Policy<TModel, TMetadata>

Represents a proposition that yields custom metadata based on the outcome of the underlying policy/predicate.

QueryableExtensions

Provides extension methods for using expression-backed propositions with IQueryable<T> sources.

ResultDescriptionBase

Represents the base class for a description of a BooleanResultBase.

Spec

Creates propositions using a fluent API.

SpecBase

The generic-less base class for all specifications. It ensures that all specifications have a description and a statement, without requiring knowledge of the model type.

SpecBase<TModel>

The base class for all specifications. At its most basic, a 'Spec' is an encapsulated predicate function that can be evaluated against a model. When the predicate is evaluated, it returns a result that contains the Boolean result of the predicate as well as metadata that captures the meaning behind the predicate. By encapsulating the predicate we can supply methods to assist with combining specifications together to form more complex specifications, which together ultimately model the desired logical proposition.

SpecBase<TModel, TMetadata>

The base class for all specifications. A specification is an encapsulated predicate that can be evaluated against a model. When the predicate is evaluated, it returns a result that contains the Boolean result of the predicate as well as metadata that captures the meaning behind the predicate. By encapsulating the predicate, we can supply methods to assist with combining specifications together to form more complex specifications.

SpecException

Represents errors that occur during the execution of a specification.

SpecExtensions

Provides extension methods for predicates. These methods convert predicates into propositions.

Spec<TModel>

Represents a proposition that defines a condition for a model of type TModel. This proposition is associated with a string metadata.

Spec<TModel, TMetadata>

Represents a proposition that yields custom metadata based on the outcome of the underlying spec/predicate.

StringExtensions

Provides extension methods for strings.

TapExtensions

Provides extension methods for attaching side-effects to specifications without altering their logical behavior.

Structs

Step_11__Motiv_Spec<TModel>

Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.ExplanationFromBooleanPredicateWithNameHigherOrderPropositionFactory<TModel> Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.MultiAssertionExplanationWithNameHigherOrderPropositionFactory<TModel>

Step_12__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.MetadataFromBooleanHigherOrderPropositionFactory<TModel, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.MultiMetadataFromBooleanHigherOrderWithSingularWhenTruePropositionFactory<TModel, TMetadata>

Step_13__Motiv_Spec<TModel>

Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.MultiAssertionExplanationHigherOrderPropositionFactory<TModel>

Step_14__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.MultiMetadataFromBooleanHigherOrderPropositionFactory<TModel, TMetadata>

Step_16__Motiv_Spec<TModel, TMetadata>

Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.ExplanationFromPolicyResultWithNamePropositionFactory<TModel, TMetadata> Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.NamedMultiAssertionPolicyPropositionFactory<TModel, TMetadata>

Step_17__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.MetadataFromPolicyResultPropositionFactory<TModel, TReplacementMetadata, TMetadata> Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.MultiMetadataFromPolicyResultWithSingularWhenTruePropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_18__Motiv_Spec<TModel, TMetadata>

Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.MultiAssertionPolicyPropositionFactory<TModel, TMetadata>

Step_19__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.MultiMetadataFromPolicyResultPropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_1__Motiv_Spec<TModel>

Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncExplanationWithNamePropositionFactory<TModel> Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMultiAssertionExplanationWithNamePropositionFactory<TModel>

Step_21__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.PolicyResultPredicate.ExplanationFromPolicyResultHigherOrderPropositionFactory<TModel, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.Explanation.PolicyResultPredicate.MultiAssertionExplanationFromPolicyResultHigherOrderWithSingularWhenTruePropositionFactory<TModel, TMetadata>

Step_22__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.PolicyResultPredicateWithName.ExplanationFromPolicyResultWithNameHigherOrderPropositionFactory<TModel, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.Explanation.PolicyResultPredicateWithName.MultiAssertionExplanationFromPolicyResultWithNameHigherOrderPropositionFactory<TModel, TMetadata>

Step_23__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.PolicyResultPredicate.MultiAssertionExplanationFromPolicyResultHigherOrderPropositionFactory<TModel, TMetadata>

Step_24__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Metadata.PolicyResultPredicate.MetadataFromPolicyResultHigherOrderPropositionFactory<TModel, TReplacementMetadata, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.Metadata.PolicyResultPredicate.MultiMetadataFromPolicyResultHigherOrderWithSingularWhenTruePropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_25__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Metadata.PolicyResultPredicate.MultiMetadataFromPolicyResultHigherOrderPropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_27__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.MetadataPropositionFactory<TModel, TReplacementMetadata, TMetadata> Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.MultiMetadataWithSingularWhenTruePropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_28__Motiv_Spec<TModel, TMetadata>

Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.MultiAssertionExplanationPropositionFactory<TModel, TMetadata>

Step_29__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.MultiMetadataPropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_2__Motiv_Spec<TModel, TMetadata>

Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMetadataPropositionFactory<TModel, TMetadata> Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMultiMetadataWithSingularWhenTruePropositionFactory<TModel, TMetadata>

Step_30__Motiv_Spec<TModel, TMetadata>

Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.NamedMultiAssertionPropositionFactory<TModel, TMetadata> Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.NamedPropositionFactory<TModel, TMetadata>

Step_32__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.ExplanationFromBooleanResultWithNameHigherOrderPropositionFactory<TModel, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.MultiAssertionExplanationFromBooleanResultWithNameHigherOrderPropositionFactory<TModel, TMetadata>

Step_33__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.MetadataFromBooleanResultHigherOrderPropositionFactory<TModel, TReplacementMetadata, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.MultiMetadataFromBooleanResultHigherOrderWithSingularWhenTruePropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_34__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.MultiAssertionExplanationFromBooleanResultHigherOrderPropositionFactory<TModel, TMetadata>

Step_35__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.MultiMetadataFromBooleanResultHigherOrderPropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_37__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.DecoratorProposition.PropositionBuilders.Policy.MetadataPolicyFactory<TModel, TReplacementMetadata, TMetadata> Motiv.DecoratorProposition.PropositionBuilders.Policy.MultiMetadataFromPolicyWithSingularWhenTruePropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_38__Motiv_Spec<TModel, TMetadata>

Motiv.DecoratorProposition.PropositionBuilders.Policy.MultiAssertionExplanationFromPolicyPropositionFactory<TModel, TMetadata>

Step_39__Motiv_Spec<TModel, TMetadata>

Motiv.DecoratorProposition.PropositionBuilders.Policy.MultiAssertionPolicyExplanationWithNamePropositionFactory<TModel, TMetadata> Motiv.DecoratorProposition.PropositionBuilders.Policy.NamedSpecPropositionFactory<TModel, TMetadata>

Step_3__Motiv_Spec<TModel>

Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMultiAssertionExplanationPropositionFactory<TModel>

Step_40__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.DecoratorProposition.PropositionBuilders.Policy.MultiMetadataFromPolicyPropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_42__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.ExplanationFromPolicyHigherOrderPropositionFactory<TModel, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.MultiAssertionFromPolicyHigherOrderWithSingularWhenTruePropositionFactory<TModel, TMetadata>

Step_43__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.ExplanationFromPolicyWithNameHigherOrderPropositionFactory<TModel, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.MultiAssertionFromPolicyWithNameHigherOrderPropositionFactory<TModel, TMetadata>

Step_44__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.MultiAssertionFromPolicyHigherOrderPropositionFactory<TModel, TMetadata>

Step_45__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Policy.MetadataFromPolicyHigherOrderPropositionFactory<TModel, TReplacementMetadata, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Policy.MultiMetadataFromPolicyHigherOrderWithSingularWhenTruePropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_46__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Policy.MultiMetadataFromPolicyHigherOrderPropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_48__Motiv_Spec<TModel, TMetadata>

Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiAssertionExplanationPropositionFactory<TModel, TMetadata>

Step_49__Motiv_Spec<TModel, TMetadata>

Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiAssertionSpecExplanationWithNamePropositionFactory<TModel, TMetadata> Motiv.DecoratorProposition.PropositionBuilders.Spec.NamedPolicyPropositionFactory<TModel, TMetadata>

Step_4__Motiv_Spec<TModel, TMetadata>

Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMultiMetadataPropositionFactory<TModel, TMetadata>

Step_50__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiMetadataPropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_51__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiMetadataWithSingularWhenTruePropositionFactory<TModel, TReplacementMetadata, TMetadata> Motiv.DecoratorProposition.PropositionBuilders.Spec.PropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_53__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.ExplanationFromSpecHigherOrderPropositionFactory<TModel, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecHigherOrderWithSingularWhenTruePropositionFactory<TModel, TMetadata>

Step_54__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.ExplanationFromSpecWithNameHigherOrderPropositionFactory<TModel, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecWithNameHigherOrderPropositionFactory<TModel, TMetadata>

Step_55__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecHigherOrderPropositionFactory<TModel, TMetadata>

Step_56__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MetadataHigherOrderPropositionFactory<TModel, TReplacementMetadata, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MultiMetadataFromSpecHigherOrderWithSingularWhenTruePropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_57__Motiv_Spec<TModel, TMetadata, TReplacementMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MultiMetadataFromSpecHigherOrderPropositionFactory<TModel, TReplacementMetadata, TMetadata>

Step_59__Motiv_Spec<TModel>

Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanExplanationExpressionTreePropositionFactory<TModel> Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMultiAssertionExplanationWithSingularWhenTrueExpressionTreePropositionFactory<TModel>

Step_60__Motiv_Spec<TModel>

Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanExplanationWithNameExpressionTreePropositionFactory<TModel> Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMultiAssertionExplanationWithNameExpressionTreePropositionFactory<TModel>

Step_61__Motiv_Spec<TModel, TMetadata>

Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMetadataExpressionTreePropositionFactory<TModel, TMetadata> Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMultiMetadataWithSingularWhenTruePropositionExpressionTreeFactory<TModel, TMetadata>

Step_62__Motiv_Spec<TModel>

Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMultiAssertionExplanationExpressionTreePropositionFactory<TModel>

Step_63__Motiv_Spec<TModel, TMetadata>

Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMultiMetadataPropositionExpressionTreeFactory<TModel, TMetadata>

Step_65__Motiv_Spec<TModel>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.BooleanExplanationHigherOrderExpressionTreePropositionFactory<TModel>

Step_66__Motiv_Spec<TModel>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.BooleanExplanationWithNameHigherOrderExpressionTreePropositionFactory<TModel> Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.BooleanMultiAssertionExplanationFromBooleanResultWithNameHigherOrderExpressionTreePropositionFactory<TModel>

Step_67__Motiv_Spec<TModel>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.BooleanMultiAssertionExplanationFromBooleanResultHigherOrderExpressionTreePropositionFactory<TModel>

Step_68__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.BooleanMetadataHigherOrderExpressionTreePropositionFactory<TModel, TMetadata> Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.BooleanMultiMetadataFromSpecHigherOrderWithSingularWhenTrueExpressionTreePropositionFactory<TModel, TMetadata>

Step_69__Motiv_Spec<TModel, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.BooleanMultiMetadataFromSpecHigherOrderExpressionTreePropositionFactory<TModel, TMetadata>

Step_6__Motiv_Spec<TModel>

Motiv.BooleanPredicateProposition.PropositionBuilders.ExplanationWithNamePropositionFactory<TModel> Motiv.BooleanPredicateProposition.PropositionBuilders.MultiAssertionExplanationWithNamePropositionFactory<TModel>

Step_71__Motiv_Spec<TModel, TPredicateResult>

Motiv.ExpressionTreeProposition.PropositionBuilders.ExplanationExpressionTreePropositionFactory<TModel, TPredicateResult> Motiv.ExpressionTreeProposition.PropositionBuilders.MultiAssertionExplanationWithSingularWhenTrueExpressionTreePropositionFactory<TModel, TPredicateResult>

Step_72__Motiv_Spec<TModel, TPredicateResult>

Motiv.ExpressionTreeProposition.PropositionBuilders.ExplanationWithNameExpressionTreePropositionFactory<TModel, TPredicateResult> Motiv.ExpressionTreeProposition.PropositionBuilders.MultiAssertionExplanationWithNameExpressionTreePropositionFactory<TModel, TPredicateResult>

Step_73__Motiv_Spec<TModel, TPredicateResult, TMetadata>

Motiv.ExpressionTreeProposition.PropositionBuilders.MetadataExpressionTreePropositionFactory<TModel, TMetadata, TPredicateResult> Motiv.ExpressionTreeProposition.PropositionBuilders.MultiMetadataWithSingularWhenTruePropositionExpressionTreeFactory<TModel, TMetadata, TPredicateResult>

Step_74__Motiv_Spec<TModel, TPredicateResult>

Motiv.ExpressionTreeProposition.PropositionBuilders.MultiAssertionExplanationExpressionTreePropositionFactory<TModel, TPredicateResult>

Step_75__Motiv_Spec<TModel, TPredicateResult, TMetadata>

Motiv.ExpressionTreeProposition.PropositionBuilders.MultiMetadataPropositionExpressionTreeFactory<TModel, TMetadata, TPredicateResult>

Step_77__Motiv_Spec<TModel, TPredicateResult>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.ExplanationHigherOrderExpressionTreePropositionFactory<TModel, TPredicateResult>

Step_78__Motiv_Spec<TModel, TPredicateResult>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.ExplanationWithNameHigherOrderExpressionTreePropositionFactory<TModel, TPredicateResult> Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.MultiAssertionExplanationFromBooleanResultWithNameHigherOrderExpressionTreePropositionFactory<TModel, TPredicateResult>

Step_79__Motiv_Spec<TModel, TPredicateResult>

Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.MultiAssertionExplanationFromBooleanResultHigherOrderExpressionTreePropositionFactory<TModel, TPredicateResult>

Step_7__Motiv_Spec<TModel, TMetadata>

Motiv.BooleanPredicateProposition.PropositionBuilders.MetadataPropositionFactory<TModel, TMetadata> Motiv.BooleanPredicateProposition.PropositionBuilders.MultiMetadataWithSingularWhenTruePropositionFactory<TModel, TMetadata>

Step_80__Motiv_Spec<TModel, TPredicateResult, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.MetadataHigherOrderExpressionTreePropositionFactory<TModel, TMetadata, TPredicateResult> Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.MultiMetadataFromSpecHigherOrderWithSingularWhenTrueExpressionTreePropositionFactory<TModel, TMetadata, TPredicateResult>

Step_81__Motiv_Spec<TModel, TPredicateResult, TMetadata>

Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.MultiMetadataFromSpecHigherOrderExpressionTreePropositionFactory<TModel, TMetadata, TPredicateResult>

Step_8__Motiv_Spec<TModel>

Motiv.BooleanPredicateProposition.PropositionBuilders.MultiAssertionExplanationPropositionFactory<TModel>

Step_9__Motiv_Spec<TModel, TMetadata>

Motiv.BooleanPredicateProposition.PropositionBuilders.MultiMetadataPropositionFactory<TModel, TMetadata>

Interfaces

IExpressionSpec<TModel>

Represents a proposition that retains a recoverable predicate expression tree, suitable for use with query providers (e.g. IQueryable<T> translation).