using Elsa.Common.Features; using Elsa.Extensions; using Elsa.Features.Abstractions; using Elsa.Features.Attributes; using Elsa.Features.Services; using Elsa.Workflows.Activities; using Elsa.Workflows.Features; using Elsa.Workflows.Management.Features; using Elsa.Workflows.Runtime.Extensions; using Elsa.Workflows.Runtime.Features; namespace Elsa.Features; /// /// Represents Elsa as a feature of the system. /// [DependsOn(typeof(MediatorFeature))] [DependsOn(typeof(WorkflowsFeature))] [DependsOn(typeof(FlowchartFeature))] [DependsOn(typeof(DefaultWorkflowRuntimeFeature))] [DependsOn(typeof(WorkflowManagementFeature))] public class ElsaFeature : FeatureBase { /// /// Set this to true to opt out of automatically registering activities from Elsa.Workflows.Core. /// public bool DisableAutomaticActivityRegistration { get; set; } /// public ElsaFeature(IModule module) : base(module) { } /// public override void Configure() { Module .UseWorkflows(workflows => workflows .WithDefaultWorkflowExecutionPipeline() .WithBackgroundActivityExecutionPipeline()) .UseWorkflowManagement(management => { if (!DisableAutomaticActivityRegistration) management.AddActivitiesFrom(); }); } }