Interface IRequestPreProcessor<TRequest>
- Namespace
- SimpleMediator
- Assembly
- SimpleMediator.dll
Executes logic before the main pipeline for a request.
public interface IRequestPreProcessor<in TRequest>
Type Parameters
TRequestRequest type being processed.
Examples
public sealed class UserContextEnricher<TRequest> : IRequestPreProcessor<TRequest>
{
private readonly IHttpContextAccessor _httpContextAccessor;
public Task Process(TRequest request, IRequestContext context, CancellationToken cancellationToken)
{
var userId = _httpContextAccessor.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value;
if (userId is not null)
{
context = context.WithUserId(userId);
}
return Task.CompletedTask;
}
}
Remarks
Runs before any behavior. Ideal for normalizing data, enriching context, or enforcing light auditing policies.
Methods
Process(TRequest, IRequestContext, CancellationToken)
Executes the pre-processing logic using the received request.
Task Process(TRequest request, IRequestContext context, CancellationToken cancellationToken)
Parameters
requestTRequestOriginal request.
contextIRequestContextRequest context that can be enriched with user info, tenant ID, etc.
cancellationTokenCancellationTokenCancellation token.
Returns
Remarks
Pre-processors can enrich the context by calling With* methods.
The enriched context flows to subsequent behaviors and handlers.