Added Interface-Message example.

This commit is contained in:
Christoph Keller 2021-04-16 18:30:48 +02:00 committed by Sipke Schoorstra
parent 3d8bb747fe
commit 1b948149d0
4 changed files with 50 additions and 0 deletions

View file

@ -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<IActionResult> TriggerInterface()
{
var message = new
{
CorrelationId = Guid.Parse("e9ca46dd-36b9-4fc4-b7db-3bb7190e4488")
};
await _publishEndpoint.Publish<IInterfaceMessage>(message);
return Ok();
}
}
}

View file

@ -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; }
}
}

View file

@ -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<TestWorkflow>()
.AddWorkflow<InterfaceTestWorkflow>()
);
}

View file

@ -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");
}
}
}