Add "UsableAsActivity" field to workflow events in MassTransit module
Updated event handling to only update activity registry for workflows marked as usable as activity
This commit is contained in:
parent
2ee823ba30
commit
3272938c8e
|
|
@ -20,8 +20,10 @@ public class WorkflowDefinitionEventsConsumer(IActivityRegistryPopulator activit
|
|||
{
|
||||
/// <inheritdoc />
|
||||
public Task Consume(ConsumeContext<WorkflowDefinitionCreated> context)
|
||||
{
|
||||
return activityRegistryPopulator.AddToRegistry(typeof(WorkflowDefinitionActivityProvider), context.Message.Id);
|
||||
{
|
||||
return context.Message.UsableAsActivity
|
||||
? activityRegistryPopulator.AddToRegistry(typeof(WorkflowDefinitionActivityProvider), context.Message.Id)
|
||||
: Task.CompletedTask;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
|
@ -34,7 +36,9 @@ public class WorkflowDefinitionEventsConsumer(IActivityRegistryPopulator activit
|
|||
/// <inheritdoc />
|
||||
public Task Consume(ConsumeContext<WorkflowDefinitionPublished> context)
|
||||
{
|
||||
return activityRegistryPopulator.AddToRegistry(typeof(WorkflowDefinitionActivityProvider), context.Message.Id);
|
||||
return context.Message.UsableAsActivity
|
||||
? activityRegistryPopulator.AddToRegistry(typeof(WorkflowDefinitionActivityProvider), context.Message.Id)
|
||||
: Task.CompletedTask;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ namespace Elsa.MassTransit.Handlers
|
|||
{
|
||||
/// <inheritdoc />
|
||||
public async Task HandleAsync(WorkflowDefinitionPublished notification, CancellationToken cancellationToken) =>
|
||||
await distributedEventsDispatcher.DispatchAsync(new Distributed.WorkflowDefinitionPublished(notification.WorkflowDefinition.Id), cancellationToken);
|
||||
|
||||
await distributedEventsDispatcher.DispatchAsync(new Distributed.WorkflowDefinitionPublished(notification.WorkflowDefinition.Id,
|
||||
notification.WorkflowDefinition.Options.UsableAsActivity.GetValueOrDefault()), cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task HandleAsync(WorkflowDefinitionDeleted notification, CancellationToken cancellationToken) =>
|
||||
|
|
@ -29,7 +29,8 @@ namespace Elsa.MassTransit.Handlers
|
|||
|
||||
/// <inheritdoc />
|
||||
public async Task HandleAsync(WorkflowDefinitionCreated notification, CancellationToken cancellationToken) =>
|
||||
await distributedEventsDispatcher.DispatchAsync(new Distributed.WorkflowDefinitionCreated(notification.WorkflowDefinition.Id), cancellationToken);
|
||||
await distributedEventsDispatcher.DispatchAsync(new Distributed.WorkflowDefinitionCreated(notification.WorkflowDefinition.Id,
|
||||
notification.WorkflowDefinition.Options.UsableAsActivity.GetValueOrDefault()), cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task HandleAsync(WorkflowDefinitionVersionDeleted notification, CancellationToken cancellationToken) =>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@ namespace Elsa.MassTransit.Messages;
|
|||
/// <summary>
|
||||
/// Represents a distributed message that a workflow definition has been created.
|
||||
/// </summary>
|
||||
public class WorkflowDefinitionCreated(string id)
|
||||
public class WorkflowDefinitionCreated(string id, bool usableAsActivity)
|
||||
{
|
||||
public string Id { get; set; } = id;
|
||||
public bool UsableAsActivity { get; set; } = usableAsActivity;
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
namespace Elsa.MassTransit.Messages;
|
||||
|
||||
public class WorkflowDefinitionPublished(string id)
|
||||
public class WorkflowDefinitionPublished(string id, bool usableAsActivity)
|
||||
{
|
||||
public string Id { get; set; } = id;
|
||||
public bool UsableAsActivity { get; set; } = usableAsActivity;
|
||||
}
|
||||
Loading…
Reference in a new issue