Skip to content

Commit

Permalink
Request will now publish an event IF result implements IEvent
Browse files Browse the repository at this point in the history
  • Loading branch information
aritchie committed Sep 28, 2024
1 parent 08c547e commit 1991434
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions src/Shiny.Mediator/Impl/Mediator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,17 @@ public class Mediator(
IEventPublisher eventPublisher
) : IMediator
{
public Task<TResult> Request<TResult>(IRequest<TResult> request, CancellationToken cancellationToken = default)
=> requestSender.Request(request, cancellationToken);
public async Task<TResult> Request<TResult>(IRequest<TResult> request, CancellationToken cancellationToken = default)
{
var result = await requestSender
.Request(request, cancellationToken)
.ConfigureAwait(false);

if (result is IEvent @event)
await this.Publish(@event, cancellationToken).ConfigureAwait(false);

return result;
}

public Task Send(IRequest request, CancellationToken cancellationToken = default)
=> requestSender.Send(request, cancellationToken);
Expand Down

0 comments on commit 1991434

Please sign in to comment.