2021-06-03 19:24:49 +00:00
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
{
2021-03-07 12:00:23 +00:00
[Action(Category = "Azure Service Bus", DisplayName = "Send Service Bus Message", Description = "Sends a message to the specified queue", Outcomes = new[] { OutcomeNames . Done } ) ]
2021-06-03 19:24:49 +00:00
public class SendAzureServiceBusQueueMessage : AzureServiceBusSendActivity
2020-11-22 21:16:28 +00:00
{
2021-04-13 13:55:28 +00:00
private readonly IQueueMessageSenderFactory _queueMessageSenderFactory ;
2020-11-22 21:16:28 +00:00
2021-04-13 13:55:28 +00:00
public SendAzureServiceBusQueueMessage ( IQueueMessageSenderFactory queueMessageSenderFactory , IContentSerializer serializer )
2021-06-03 19:24:49 +00:00
: base ( serializer )
2020-11-22 21:16:28 +00:00
{
2021-04-13 13:55:28 +00:00
_queueMessageSenderFactory = queueMessageSenderFactory ;
2020-11-22 21:16:28 +00:00
}
2021-05-29 11:43:12 +00:00
[ActivityInput(SupportedSyntaxes = new[] { SyntaxNames . JavaScript , SyntaxNames . Liquid } ) ]
2021-04-03 19:07:18 +00:00
public string QueueName { get ; set ; } = default ! ;
2020-12-02 21:28:36 +00:00
protected override async ValueTask < IActivityExecutionResult > OnExecuteAsync ( ActivityExecutionContext context )
2020-11-22 21:16:28 +00:00
{
2021-06-03 19:24:49 +00:00
Sender = await _queueMessageSenderFactory . GetSenderAsync ( QueueName , context . CancellationToken ) ;
return await base . OnExecuteAsync ( context ) ;
2020-11-22 21:16:28 +00:00
}
}
}