-
Notifications
You must be signed in to change notification settings - Fork 0
/
IPreProcessor.cs
25 lines (23 loc) · 1.04 KB
/
IPreProcessor.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
namespace Marty.Net.Contracts;
using System.Threading;
using System.Threading.Tasks;
using Internal;
/// <summary>
/// Action to be executed before the <see cref="IEventHandler{T}" />
/// </summary>
/// <typeparam name="T"></typeparam>
[PreProcessorEvent]
public interface IPreProcessor<in T>
where T : IEvent
{
/// <summary>
/// Implement this to execute actions before <see cref="OperationResult" />.
/// Returns an <see cref="OperationResult" /> specifying what the event store subscription should do with the event
/// after being processed.
/// </summary>
/// <param name="event">The event that appeared on the persistent subscription.</param>
/// <param name="context">The context of the event <see cref="IConsumerContext" />.</param>
/// <param name="cancellationToken">The <see cref="System.Threading" />.</param>
/// <returns>The task with an <see cref="IEventHandler{T}" /> to be awaited.</returns>
Task Execute(T @event, IConsumerContext context, CancellationToken cancellationToken = default);
}