Table of Contents

Interface IBatchValidator<T>

Namespace
Visus.AddressValidation.Validation
Assembly
Visus.AddressValidation.dll

Defines a validator that produces one independent IValidationResult per item in a batch response.

public interface IBatchValidator<in T> where T : class

Type Parameters

T

The type of object to validate.

Methods

ExecuteAsync(T, IReadOnlyList<int>, CancellationToken)

Executes validation against the specified instance, producing one result per expected item.

ValueTask<IReadOnlyList<IValidationResult>> ExecuteAsync(T instance, IReadOnlyList<int> requestIndexes, CancellationToken cancellationToken = default)

Parameters

instance T

The instance to validate.

requestIndexes IReadOnlyList<int>

The original, caller-facing index of each request sent to the provider, in the order sent. Its count is the number of items expected in the result. Use these values, instead of the positional loop index, when a validation message must reference an item's original position. Local validation may filter out some requests before the batch call, so the loop index does not match the original position.

cancellationToken CancellationToken

A token that cancels the operation.

Returns

ValueTask<IReadOnlyList<IValidationResult>>

A list of exactly requestIndexes.Count IValidationResult objects, positionally aligned with the items sent to the provider.