Table of Contents

Interface ValidationRuleBuilder.IRuleBuilder<TModel>

Namespace
EncDotNet.S100.Validation
Assembly
EncDotNet.S100.Core.dll

Fluent builder for a single validation rule.

public interface ValidationRuleBuilder.IRuleBuilder<TModel>

Type Parameters

TModel

Methods

Build()

Builds the configured IValidationRule<TModel>.

IValidationRule<TModel> Build()

Returns

IValidationRule<TModel>

Check(Func<TModel, bool>, string?, Func<TModel, GeoPosition?>?)

Defines the rule as a single boolean predicate. The predicate must return true when the model conforms; the rule will emit a finding when it returns false.

ValidationRuleBuilder.IRuleBuilder<TModel> Check(Func<TModel, bool> predicate, string? failureMessage = null, Func<TModel, GeoPosition?>? locator = null)

Parameters

predicate Func<TModel, bool>

Returns true when the model conforms.

failureMessage string

Message attached to the emitted finding when the predicate fails. Defaults to the rule's description.

locator Func<TModel, GeoPosition?>

Optional function returning the point location to attach to the finding when the predicate fails. Useful for findings tied to a specific feature.

Returns

ValidationRuleBuilder.IRuleBuilder<TModel>

WithDescription(string)

Sets the human-readable description of the rule.

ValidationRuleBuilder.IRuleBuilder<TModel> WithDescription(string description)

Parameters

description string

Returns

ValidationRuleBuilder.IRuleBuilder<TModel>

WithSeverity(ValidationSeverity)

Sets the default severity used by findings the rule emits.

ValidationRuleBuilder.IRuleBuilder<TModel> WithSeverity(ValidationSeverity severity)

Parameters

severity ValidationSeverity

Returns

ValidationRuleBuilder.IRuleBuilder<TModel>

Yield(Func<TModel, ValidationContext, IEnumerable<ValidationFinding>>)

Defines the rule as a multi-finding producer. Use this form when a single rule may emit several findings (for example, one finding per offending waypoint).

ValidationRuleBuilder.IRuleBuilder<TModel> Yield(Func<TModel, ValidationContext, IEnumerable<ValidationFinding>> producer)

Parameters

producer Func<TModel, ValidationContext, IEnumerable<ValidationFinding>>

Returns

ValidationRuleBuilder.IRuleBuilder<TModel>