From 1d1218b5a7bdcbbd9a29b71ffd6730d1e6848e73 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Mon, 21 Mar 2022 20:32:52 +0100 Subject: [PATCH] Update MessageReceived.cs --- .../Activities/MessageReceived.cs | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/modules/Elsa.Modules.AzureServiceBus/Activities/MessageReceived.cs b/src/modules/Elsa.Modules.AzureServiceBus/Activities/MessageReceived.cs index 3b5d4411a..3cfa48432 100644 --- a/src/modules/Elsa.Modules.AzureServiceBus/Activities/MessageReceived.cs +++ b/src/modules/Elsa.Modules.AzureServiceBus/Activities/MessageReceived.cs @@ -1,3 +1,4 @@ +using System.Text.Json.Serialization; using Elsa.Attributes; using Elsa.Formatting.Contracts; using Elsa.Models; @@ -9,6 +10,31 @@ namespace Elsa.Modules.AzureServiceBus.Activities; public class MessageReceived : Trigger { internal const string MessageReceivedInputKey = "ReceivedMessage"; + + [JsonConstructor] + public MessageReceived() + { + } + + public MessageReceived(Input queue) + { + QueueOrTopic = queue; + } + + public MessageReceived(string queue) : this(new Input(queue)) + { + } + + public MessageReceived(Input topic, Input subscription) + { + QueueOrTopic = topic; + Subscription = subscription; + } + + public MessageReceived(string topic, string subscription) : this(new Input(topic), new Input(subscription)) + { + } + public Input QueueOrTopic { get; set; } = default!; public Input? Subscription { get; set; } = default!; @@ -43,10 +69,10 @@ public class MessageReceived : Trigger private async ValueTask Resume(ActivityExecutionContext context) { var receivedMessage = (ReceivedServiceBusMessageModel)context.WorkflowExecutionContext.Input[MessageReceivedInputKey]!; - var bodyAsString = new BinaryData(receivedMessage.Body).ToString(); + var bodyAsString = new BinaryData(receivedMessage.Body).ToString(); var targetType = context.Get(ExpectedMessageType); var body = Formatter == null ? bodyAsString : await Formatter.FromStringAsync(bodyAsString, targetType, context.CancellationToken); - + context.Set(ReceivedMessage, receivedMessage); context.Set(ReceivedMessageBody, body); }