Table of Contents

Interface IRequestPreProcessor<TRequest>

Namespace
SimpleMediator
Assembly
SimpleMediator.dll

Executes logic before the main pipeline for a request.

public interface IRequestPreProcessor<in TRequest>

Type Parameters

TRequest

Request 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

request TRequest

Original request.

context IRequestContext

Request context that can be enriched with user info, tenant ID, etc.

cancellationToken CancellationToken

Cancellation token.

Returns

Task

Remarks

Pre-processors can enrich the context by calling With* methods. The enriched context flows to subsequent behaviors and handlers.