diff --git a/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Controllers/TriggerMessageController.cs b/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Controllers/TriggerMessageController.cs index cf9ac5d1e..ecbdf68fc 100644 --- a/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Controllers/TriggerMessageController.cs +++ b/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Controllers/TriggerMessageController.cs @@ -1,3 +1,4 @@ +using System; using MassTransit; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; @@ -33,5 +34,17 @@ namespace Elsa.Samples.MassTransitRabbitMq.Controllers await _publishEndpoint.Publish(message); return Ok(); } + + [Route("interface")] + [HttpPost] + public async Task TriggerInterface() + { + var message = new + { + CorrelationId = Guid.Parse("e9ca46dd-36b9-4fc4-b7db-3bb7190e4488") + }; + await _publishEndpoint.Publish(message); + return Ok(); + } } } \ No newline at end of file diff --git a/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Messages/IInterfaceMessage.cs b/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Messages/IInterfaceMessage.cs new file mode 100644 index 000000000..13ae2e0b6 --- /dev/null +++ b/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Messages/IInterfaceMessage.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Elsa.Samples.MassTransitRabbitMq.Messages +{ + public interface IInterfaceMessage + { + Guid CorrelationId { get; set; } + } +} diff --git a/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Startup.cs b/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Startup.cs index 5634df711..73fbf43eb 100644 --- a/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Startup.cs +++ b/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Startup.cs @@ -23,6 +23,7 @@ namespace Elsa.Samples.MassTransitRabbitMq // Add workflow consumer for message x.AddConsumer(CreateWorkflowConsumer(typeof(FirstMessage))); x.AddConsumer(CreateWorkflowConsumer(typeof(SecondMessage))); + x.AddConsumer(CreateWorkflowConsumer(typeof(IInterfaceMessage))); // Configure rabbitmq x.UsingRabbitMq((ctx, cfg) => @@ -38,6 +39,7 @@ namespace Elsa.Samples.MassTransitRabbitMq .AddConsoleActivities() .AddMassTransitActivities() .AddWorkflow() + .AddWorkflow() ); } diff --git a/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Workflows/InterfaceTestWorkflow.cs b/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Workflows/InterfaceTestWorkflow.cs new file mode 100644 index 000000000..fa2673d21 --- /dev/null +++ b/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Workflows/InterfaceTestWorkflow.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Elsa.Activities.Console; +using Elsa.Activities.MassTransit; +using Elsa.Builders; +using Elsa.Samples.MassTransitRabbitMq.Messages; + +namespace Elsa.Samples.MassTransitRabbitMq.Workflows +{ + public class InterfaceTestWorkflow : IWorkflow + { + public void Build(IWorkflowBuilder builder) + { + builder + .ReceiveMassTransitMessage( + activity => activity.Set(x => x.MessageType, x => typeof(IInterfaceMessage)) + ) + .WriteLine(context => $"Received interface message"); + } + } +}