Table of Contents

Class Spec

Namespace
Motiv
Assembly
Motiv.dll

Creates propositions using a fluent API.

[FluentRoot]
public static class Spec
Inheritance
Spec
Inherited Members

Methods

BuildAsync<TModel>(in Func<TModel, CancellationToken, Task<bool>>)

The async predicate function that evaluates the model to a boolean value.

<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncExplanationWithNamePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMetadataPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMinimalBooleanPredicatePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMultiAssertionExplanationPropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMultiAssertionExplanationWithNamePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMultiMetadataPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMultiMetadataWithSingularWhenTruePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
public static AsyncMinimalBooleanPredicatePropositionFactory<TModel> BuildAsync<TModel>(in Func<TModel, CancellationToken, Task<bool>> predicate)

Parameters

predicate Func<TModel, CancellationToken, Task<bool>>

Returns

AsyncMinimalBooleanPredicatePropositionFactory<TModel>

Type Parameters

TModel

BuildAsync<TModel>(in Func<TModel, Task<bool>>)

The async predicate function that evaluates the model to a boolean value.

<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncExplanationWithNamePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMetadataPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMinimalBooleanPredicatePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMultiAssertionExplanationPropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMultiAssertionExplanationWithNamePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMultiMetadataPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.AsyncMultiMetadataWithSingularWhenTruePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
public static AsyncMinimalBooleanPredicatePropositionFactory<TModel> BuildAsync<TModel>(in Func<TModel, Task<bool>> predicate)

Parameters

predicate Func<TModel, Task<bool>>

Returns

AsyncMinimalBooleanPredicatePropositionFactory<TModel>

Type Parameters

TModel

Build<TModel>(in SpecBase<TModel, string>)

The proposition to decorate.

<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.ExplanationFromSpecHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.ExplanationFromSpecWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MetadataHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MinimalHigherOrderFromSpecPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MinimalSpecDecoratorFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiAssertionExplanationPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecHigherOrderWithSingularWhenTruePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiAssertionSpecExplanationWithNamePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MultiMetadataFromSpecHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MultiMetadataFromSpecHigherOrderWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiMetadataPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiMetadataWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.NamedPolicyPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.PropositionFactory%603" data-throw-if-not-resolved="false"></xref>
public static MinimalSpecDecoratorFactory<TModel, string> Build<TModel>(in SpecBase<TModel, string> spec)

Parameters

spec SpecBase<TModel, string>

Returns

MinimalSpecDecoratorFactory<TModel, string>

Type Parameters

TModel

Build<TModel>(in Func<SpecBase<TModel, string>>)

The proposition to decorate.

<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.ExplanationFromSpecHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.ExplanationFromSpecWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MetadataHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MinimalHigherOrderFromSpecPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MinimalSpecDecoratorFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiAssertionExplanationPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecHigherOrderWithSingularWhenTruePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiAssertionSpecExplanationWithNamePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MultiMetadataFromSpecHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MultiMetadataFromSpecHigherOrderWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiMetadataPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiMetadataWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.NamedPolicyPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.PropositionFactory%603" data-throw-if-not-resolved="false"></xref>
public static MinimalSpecDecoratorFactory<TModel, string> Build<TModel>(in Func<SpecBase<TModel, string>> specFactory)

Parameters

specFactory Func<SpecBase<TModel, string>>

Returns

MinimalSpecDecoratorFactory<TModel, string>

Type Parameters

TModel

Build<TModel>(in Func<TModel, bool>)

The predicate function that evaluates the model to a boolean value.

<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.ExplanationFromBooleanPredicateWithNameHigherOrderPropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.ExplanationWithNamePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.MetadataFromBooleanHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.MetadataPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.MinimalBooleanPredicatePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.MinimalHigherOrderFromBooleanPredicatePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.MultiAssertionExplanationHigherOrderPropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.MultiAssertionExplanationPropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.MultiAssertionExplanationWithNameHigherOrderPropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.MultiAssertionExplanationWithNamePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.MultiMetadataFromBooleanHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanPredicate.MultiMetadataFromBooleanHigherOrderWithSingularWhenTruePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.MultiMetadataPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanPredicateProposition.PropositionBuilders.MultiMetadataWithSingularWhenTruePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
public static MinimalBooleanPredicatePropositionFactory<TModel> Build<TModel>(in Func<TModel, bool> predicate)

Parameters

predicate Func<TModel, bool>

Returns

MinimalBooleanPredicatePropositionFactory<TModel>

Type Parameters

TModel

Build<TModel, TMetadata>(in PolicyBase<TModel, TMetadata>)

The specification to use for the proposition.

<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.ExplanationFromPolicyHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.ExplanationFromPolicyWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Policy.MetadataFromPolicyHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.MetadataPolicyFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.MinimalHigherOrderFromPolicyPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.MinimalPolicyDecoratorFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.MultiAssertionExplanationFromPolicyPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.MultiAssertionFromPolicyHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.MultiAssertionFromPolicyHigherOrderWithSingularWhenTruePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.MultiAssertionFromPolicyWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.MultiAssertionPolicyExplanationWithNamePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Policy.MultiMetadataFromPolicyHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Policy.MultiMetadataFromPolicyHigherOrderWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.MultiMetadataFromPolicyPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.MultiMetadataFromPolicyWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.NamedSpecPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
public static MinimalPolicyDecoratorFactory<TModel, TMetadata> Build<TModel, TMetadata>(in PolicyBase<TModel, TMetadata> policy)

Parameters

policy PolicyBase<TModel, TMetadata>

Returns

MinimalPolicyDecoratorFactory<TModel, TMetadata>

Type Parameters

TModel
TMetadata

Build<TModel, TMetadata>(in SpecBase<TModel, TMetadata>)

The proposition to decorate.

<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.ExplanationFromSpecHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.ExplanationFromSpecWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MetadataHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MinimalHigherOrderFromSpecPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MinimalSpecDecoratorFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiAssertionExplanationPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecHigherOrderWithSingularWhenTruePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiAssertionSpecExplanationWithNamePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MultiMetadataFromSpecHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MultiMetadataFromSpecHigherOrderWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiMetadataPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiMetadataWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.NamedPolicyPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.PropositionFactory%603" data-throw-if-not-resolved="false"></xref>
public static MinimalSpecDecoratorFactory<TModel, TMetadata> Build<TModel, TMetadata>(in SpecBase<TModel, TMetadata> spec)

Parameters

spec SpecBase<TModel, TMetadata>

Returns

MinimalSpecDecoratorFactory<TModel, TMetadata>

Type Parameters

TModel
TMetadata

Build<TModel, TMetadata>(in Func<PolicyBase<TModel, TMetadata>>)

The specification to use for the proposition.

<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.ExplanationFromPolicyHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.ExplanationFromPolicyWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Policy.MetadataFromPolicyHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.MetadataPolicyFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.MinimalHigherOrderFromPolicyPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.MinimalPolicyDecoratorFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.MultiAssertionExplanationFromPolicyPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.MultiAssertionFromPolicyHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.MultiAssertionFromPolicyHigherOrderWithSingularWhenTruePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Policy.MultiAssertionFromPolicyWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.MultiAssertionPolicyExplanationWithNamePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Policy.MultiMetadataFromPolicyHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Policy.MultiMetadataFromPolicyHigherOrderWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.MultiMetadataFromPolicyPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.MultiMetadataFromPolicyWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Policy.NamedSpecPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
public static MinimalPolicyDecoratorFactory<TModel, TMetadata> Build<TModel, TMetadata>(in Func<PolicyBase<TModel, TMetadata>> policyFactory)

Parameters

policyFactory Func<PolicyBase<TModel, TMetadata>>

Returns

MinimalPolicyDecoratorFactory<TModel, TMetadata>

Type Parameters

TModel
TMetadata

Build<TModel, TMetadata>(in Func<SpecBase<TModel, TMetadata>>)

The proposition to decorate.

<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.ExplanationFromSpecHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.ExplanationFromSpecWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MetadataHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MinimalHigherOrderFromSpecPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MinimalSpecDecoratorFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiAssertionExplanationPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecHigherOrderWithSingularWhenTruePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.Spec.MultiAssertionFromSpecWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiAssertionSpecExplanationWithNamePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MultiMetadataFromSpecHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.Spec.MultiMetadataFromSpecHigherOrderWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiMetadataPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.MultiMetadataWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.NamedPolicyPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.DecoratorProposition.PropositionBuilders.Spec.PropositionFactory%603" data-throw-if-not-resolved="false"></xref>
public static MinimalSpecDecoratorFactory<TModel, TMetadata> Build<TModel, TMetadata>(in Func<SpecBase<TModel, TMetadata>> specFactory)

Parameters

specFactory Func<SpecBase<TModel, TMetadata>>

Returns

MinimalSpecDecoratorFactory<TModel, TMetadata>

Type Parameters

TModel
TMetadata

Build<TModel, TMetadata>(in Func<TModel, BooleanResultBase<TMetadata>>)

The predicate function that evaluates the model to a .

<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.ExplanationFromBooleanResultWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.MetadataFromBooleanResultHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.MetadataPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.MinimalBooleanResultPredicatePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.MinimalHigherOrderFromBooleanResultPredicatePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.MultiAssertionExplanationFromBooleanResultHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.MultiAssertionExplanationFromBooleanResultWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.MultiAssertionExplanationPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.MultiMetadataFromBooleanResultHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.BooleanResultPredicate.MultiMetadataFromBooleanResultHigherOrderWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.MultiMetadataPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.MultiMetadataWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.NamedMultiAssertionPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Spec.NamedPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
public static MinimalBooleanResultPredicatePropositionFactory<TModel, TMetadata> Build<TModel, TMetadata>(in Func<TModel, BooleanResultBase<TMetadata>> resultFactory)

Parameters

resultFactory Func<TModel, BooleanResultBase<TMetadata>>

Returns

MinimalBooleanResultPredicatePropositionFactory<TModel, TMetadata>

Type Parameters

TModel
TMetadata

Build<TModel, TMetadata>(in Func<TModel, PolicyResultBase<TMetadata>>)

The predicate to use for the specification.

<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.PolicyResultPredicate.ExplanationFromPolicyResultHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.PolicyResultPredicateWithName.ExplanationFromPolicyResultWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.ExplanationFromPolicyResultWithNamePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.PolicyResultPredicate.MetadataFromPolicyResultHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.MetadataFromPolicyResultPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.MinimalPolicyResultPredicatePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.PolicyResultPredicate.MultiAssertionExplanationFromPolicyResultHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.PolicyResultPredicate.MultiAssertionExplanationFromPolicyResultHigherOrderWithSingularWhenTruePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.PolicyResultPredicateWithName.MultiAssertionExplanationFromPolicyResultWithNameHigherOrderPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.MultiAssertionPolicyPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.PolicyResultPredicate.MultiMetadataFromPolicyResultHigherOrderPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.PolicyResultPredicate.MultiMetadataFromPolicyResultHigherOrderWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.MultiMetadataFromPolicyResultPropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.MultiMetadataFromPolicyResultWithSingularWhenTruePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.BooleanResultPredicateProposition.PropositionBuilders.Policy.NamedMultiAssertionPolicyPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.PolicyResultPredicate.TrueHigherOrderFromPolicyResultPredicatePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
public static MinimalPolicyResultPredicatePropositionFactory<TModel, TMetadata> Build<TModel, TMetadata>(in Func<TModel, PolicyResultBase<TMetadata>> resultFactory)

Parameters

resultFactory Func<TModel, PolicyResultBase<TMetadata>>

Returns

MinimalPolicyResultPredicatePropositionFactory<TModel, TMetadata>

Type Parameters

TModel
TMetadata

From<TModel>(in Expression<Func<TModel, bool>>)

The expression to use for the specification.

<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanExplanationExpressionTreePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.BooleanExplanationHigherOrderExpressionTreePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanExplanationWithNameExpressionTreePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.BooleanExplanationWithNameHigherOrderExpressionTreePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMetadataExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.BooleanMetadataHigherOrderExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMinimalExpressionTreePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMultiAssertionExplanationExpressionTreePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.BooleanMultiAssertionExplanationFromBooleanResultHigherOrderExpressionTreePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.BooleanMultiAssertionExplanationFromBooleanResultWithNameHigherOrderExpressionTreePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMultiAssertionExplanationWithNameExpressionTreePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMultiAssertionExplanationWithSingularWhenTrueExpressionTreePropositionFactory%601" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.BooleanMultiMetadataFromSpecHigherOrderExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.BooleanMultiMetadataFromSpecHigherOrderWithSingularWhenTrueExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMultiMetadataPropositionExpressionTreeFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.BooleanMultiMetadataWithSingularWhenTruePropositionExpressionTreeFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.BooleanTrueExpressionTreeHigherOrderFromSpecPropositionFactory%601" data-throw-if-not-resolved="false"></xref>
public static BooleanMinimalExpressionTreePropositionFactory<TModel> From<TModel>(in Expression<Func<TModel, bool>> expression)

Parameters

expression Expression<Func<TModel, bool>>

Returns

BooleanMinimalExpressionTreePropositionFactory<TModel>

Type Parameters

TModel

From<TModel, TPredicateResult>(in Expression<Func<TModel, TPredicateResult>>)

The expression to use for the specification.

<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.ExplanationExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.ExplanationHigherOrderExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.ExplanationWithNameExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.ExplanationWithNameHigherOrderExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.MetadataExpressionTreePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.MetadataHigherOrderExpressionTreePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.MinimalExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.MultiAssertionExplanationExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.MultiAssertionExplanationFromBooleanResultHigherOrderExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Explanation.ExpressionTree.MultiAssertionExplanationFromBooleanResultWithNameHigherOrderExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.MultiAssertionExplanationWithNameExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.MultiAssertionExplanationWithSingularWhenTrueExpressionTreePropositionFactory%602" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.MultiMetadataFromSpecHigherOrderExpressionTreePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.MultiMetadataFromSpecHigherOrderWithSingularWhenTrueExpressionTreePropositionFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.MultiMetadataPropositionExpressionTreeFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.ExpressionTreeProposition.PropositionBuilders.MultiMetadataWithSingularWhenTruePropositionExpressionTreeFactory%603" data-throw-if-not-resolved="false"></xref>
<xref href="Motiv.HigherOrderProposition.PropositionBuilders.Metadata.ExpressionTree.TrueExpressionTreeHigherOrderFromSpecPropositionFactory%602" data-throw-if-not-resolved="false"></xref>
public static MinimalExpressionTreePropositionFactory<TModel, TPredicateResult> From<TModel, TPredicateResult>(in Expression<Func<TModel, TPredicateResult>> expression)

Parameters

expression Expression<Func<TModel, TPredicateResult>>

Returns

MinimalExpressionTreePropositionFactory<TModel, TPredicateResult>

Type Parameters

TModel
TPredicateResult