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
validatorPdfSignatureValidatorThe underlying PDF signature validator.
maxConcurrencyintMaximum concurrent validations. Default: 4.
loggerILoggerOptional logger.
Properties
AverageElapsedMs
Average validation time per document in milliseconds.
public double AverageElapsedMs { get; }
Property Value
FailureCount
Number of PDFs that failed to validate (unreadable, corrupt, etc.).
public int FailureCount { get; }
Property Value
SuccessCount
Number of PDFs successfully validated.
public int SuccessCount { get; }
Property Value
TotalProcessed
Total PDFs processed.
public int TotalProcessed { get; }
Property Value
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
inputsIAsyncEnumerable<(string Id, byte[] PdfBytes)>Async enumerable of (identifier, PDF bytes) pairs.
cancellationTokenCancellationTokenCancellation 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
pdfStreamStreamSeekable PDF stream.
cancellationTokenCancellationTokenCancellation 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
filePathsIEnumerable<string>File paths to validate.
cancellationTokenCancellationTokenCancellation token.
Returns
- IAsyncEnumerable<BulkValidationResult>
Async enumerable of bulk validation results.