elsa-core/src/activities/Elsa.Activities.AzureServiceBus/Activities/SendAzureServiceBusMessage/SendAzureServiceBusQueueMessage.cs

32 lines
1.3 KiB
C#
Raw Normal View History

using System.Threading.Tasks;
2020-11-23 15:46:42 +00:00
using Elsa.Activities.AzureServiceBus.Services;
2020-11-22 21:16:28 +00:00
using Elsa.ActivityResults;
using Elsa.Attributes;
2021-04-03 19:07:18 +00:00
using Elsa.Expressions;
2020-11-22 21:16:28 +00:00
using Elsa.Serialization;
using Elsa.Services;
using Elsa.Services.Models;
2020-11-23 15:46:42 +00:00
namespace Elsa.Activities.AzureServiceBus
2020-11-22 21:16:28 +00:00
{
[Action(Category = "Azure Service Bus", DisplayName = "Send Service Bus Message", Description = "Sends a message to the specified queue", Outcomes = new[] { OutcomeNames.Done })]
public class SendAzureServiceBusQueueMessage : AzureServiceBusSendActivity
2020-11-22 21:16:28 +00:00
{
private readonly IQueueMessageSenderFactory _queueMessageSenderFactory;
2020-11-22 21:16:28 +00:00
public SendAzureServiceBusQueueMessage(IQueueMessageSenderFactory queueMessageSenderFactory, IContentSerializer serializer)
:base(serializer)
2020-11-22 21:16:28 +00:00
{
_queueMessageSenderFactory = queueMessageSenderFactory;
2020-11-22 21:16:28 +00:00
}
[ActivityInput(SupportedSyntaxes = new[] { SyntaxNames.JavaScript, SyntaxNames.Liquid })]
2021-04-03 19:07:18 +00:00
public string QueueName { get; set; } = default!;
protected override async ValueTask<IActivityExecutionResult> OnExecuteAsync(ActivityExecutionContext context)
2020-11-22 21:16:28 +00:00
{
Sender = await _queueMessageSenderFactory.GetSenderAsync(QueueName, context.CancellationToken);
return await base.OnExecuteAsync(context);
2020-11-22 21:16:28 +00:00
}
}
}