Table of Contents

Class BulkValidator

Namespace
SimpleSign.PAdES.Validation
Assembly
SimpleSign.PAdES.dll

High-performance streaming bulk validator for mass PDF validation. Unlike ValidateBatchAsync(IEnumerable<(Stream Stream, string? Identifier)>, int, string?, CancellationToken) which buffers all results, this class yields results as they complete via IAsyncEnumerable<T>, keeping memory usage constant regardless of batch size.

public sealed class BulkValidator
Inheritance
BulkValidator
Inherited Members

Constructors

BulkValidator(PdfSignatureValidator, int, ILogger?)

Creates a new bulk validator.

public BulkValidator(PdfSignatureValidator validator, int maxConcurrency = 4, ILogger? logger = null)

Parameters

validator PdfSignatureValidator

The underlying PDF signature validator.

maxConcurrency int

Maximum concurrent validations. Default: 4.

logger ILogger

Optional logger.

Properties

AverageElapsedMs

Average validation time per document in milliseconds.

public double AverageElapsedMs { get; }

Property Value

double

FailureCount

Number of PDFs that failed to validate (unreadable, corrupt, etc.).

public int FailureCount { get; }

Property Value

int

SuccessCount

Number of PDFs successfully validated.

public int SuccessCount { get; }

Property Value

int

TotalProcessed

Total PDFs processed.

public int TotalProcessed { get; }

Property Value

int

Methods

ResetMetrics()

Resets success/failure counters and average elapsed time.

public void ResetMetrics()

ValidateAllAsync(IAsyncEnumerable<(string Id, byte[] PdfBytes)>, CancellationToken)

Validates all PDFs from an async enumerable, yielding results as they complete. Memory usage stays constant regardless of batch size.

public IAsyncEnumerable<BulkValidationResult> ValidateAllAsync(IAsyncEnumerable<(string Id, byte[] PdfBytes)> inputs, CancellationToken cancellationToken = default)

Parameters

inputs IAsyncEnumerable<(string Id, byte[] PdfBytes)>

Async enumerable of (identifier, PDF bytes) pairs.

cancellationToken CancellationToken

Cancellation token.

Returns

IAsyncEnumerable<BulkValidationResult>

Async enumerable of bulk validation results.

ValidateAsync(Stream, CancellationToken)

Validates a single PDF and returns the validation results.

public Task<IReadOnlyList<SignatureValidationResult>> ValidateAsync(Stream pdfStream, CancellationToken cancellationToken = default)

Parameters

pdfStream Stream

Seekable PDF stream.

cancellationToken CancellationToken

Cancellation token.

Returns

Task<IReadOnlyList<SignatureValidationResult>>

Validation results for all signatures in the PDF.

ValidateFilesAsync(IEnumerable<string>, CancellationToken)

Validates all PDFs from a synchronous enumerable of file paths. Reads files on demand to minimize memory usage.

public IAsyncEnumerable<BulkValidationResult> ValidateFilesAsync(IEnumerable<string> filePaths, CancellationToken cancellationToken = default)

Parameters

filePaths IEnumerable<string>

File paths to validate.

cancellationToken CancellationToken

Cancellation token.

Returns

IAsyncEnumerable<BulkValidationResult>

Async enumerable of bulk validation results.