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
TThe 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
instanceTThe instance to validate.
requestIndexesIReadOnlyList<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.
cancellationTokenCancellationTokenA token that cancels the operation.
Returns
- ValueTask<IReadOnlyList<IValidationResult>>
A list of exactly
requestIndexes.CountIValidationResult objects, positionally aligned with the items sent to the provider.