using Elsa.MassTransit.Messages;
using Elsa.Workflows.Management.Activities.WorkflowDefinitionActivity;
using Elsa.Workflows.Management.Contracts;
using JetBrains.Annotations;
using MassTransit;
namespace Elsa.MassTransit.Consumers;
///
/// Consumes messages related to workflow definition changes.
///
[PublicAPI]
public class WorkflowDefinitionEventsConsumer(IActivityRegistryPopulator activityRegistryPopulator) :
IConsumer,
IConsumer,
IConsumer,
IConsumer,
IConsumer,
IConsumer,
IConsumer
{
///
public Task Consume(ConsumeContext context) => RefreshAsync();
///
public Task Consume(ConsumeContext context) => RefreshAsync();
///
public async Task Consume(ConsumeContext context)
{
await activityRegistryPopulator.AddToRegistry(typeof(WorkflowDefinitionActivityProvider), context.Message.Id);
}
///
public Task Consume(ConsumeContext context) => RefreshAsync();
///
public Task Consume(ConsumeContext context) => RefreshAsync();
///
public Task Consume(ConsumeContext context) => RefreshAsync();
///
public Task Consume(ConsumeContext context) => RefreshAsync();
private async Task RefreshAsync() => await activityRegistryPopulator.PopulateRegistryAsync(typeof(WorkflowDefinitionActivityProvider));
}