elsa-core/src/modules/Elsa.Mediator/Implementations/DefaultMessageSender.cs
2022-11-03 21:40:23 +01:00

21 lines
625 B
C#

using System.Threading.Channels;
using Elsa.Mediator.Services;
using Microsoft.Extensions.DependencyInjection;
namespace Elsa.Mediator.Implementations;
public class DefaultMessageSender : IMessageSender
{
private readonly IServiceProvider _serviceProvider;
public DefaultMessageSender(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
public async Task SendAsync<T>(T message, CancellationToken cancellationToken)
{
var channel = _serviceProvider.GetRequiredService<Channel<T>>();
await channel.Writer.WriteAsync(message, cancellationToken);
}
}