diff --git a/src/core/Elsa.Abstractions/Handlers/ActivityHandlerBase.cs b/src/core/Elsa.Abstractions/Handlers/ActivityHandlerBase.cs index b8cc46eb5..26610fc40 100644 --- a/src/core/Elsa.Abstractions/Handlers/ActivityHandlerBase.cs +++ b/src/core/Elsa.Abstractions/Handlers/ActivityHandlerBase.cs @@ -32,7 +32,9 @@ namespace Elsa.Handlers protected virtual ActivityExecutionResult OnResume(T activity, WorkflowExecutionContext workflowContext) => Noop(); protected NoopResult Noop() => new NoopResult(); protected IEnumerable Endpoints(params LocalizedString[] endpoints) => endpoints; + public virtual IEnumerable GetEndpoints(IActivity activity) => Endpoints(); public virtual IEnumerable GetEndpoints() => Endpoints(GetEndpoint()); - protected virtual LocalizedString GetEndpoint() => throw new NotImplementedException("At least GetEndpoints or GetEndpoint must be overridden."); + protected virtual LocalizedString GetEndpoint(IActivity activity) => GetEndpoint(); + protected virtual LocalizedString GetEndpoint() => new LocalizedString("Done", "Done", true); } } \ No newline at end of file diff --git a/src/core/Elsa.Abstractions/IActivityHandler.cs b/src/core/Elsa.Abstractions/IActivityHandler.cs index b10c9560a..fc74d8cfb 100644 --- a/src/core/Elsa.Abstractions/IActivityHandler.cs +++ b/src/core/Elsa.Abstractions/IActivityHandler.cs @@ -39,7 +39,7 @@ namespace Elsa /// Returns the available endpoints that can be triggered. /// /// - IEnumerable GetEndpoints(); + IEnumerable GetEndpoints(IActivity activity); /// /// Returns a value of whether the specified activity can execute. diff --git a/src/core/Elsa.Abstractions/Models/ActivityDescriptor.cs b/src/core/Elsa.Abstractions/Models/ActivityDescriptor.cs index 12f1f4abb..adbc319c6 100644 --- a/src/core/Elsa.Abstractions/Models/ActivityDescriptor.cs +++ b/src/core/Elsa.Abstractions/Models/ActivityDescriptor.cs @@ -16,7 +16,7 @@ namespace Elsa.Models public Type ActivityType { get; set; } public LocalizedString DisplayText { get; set; } public LocalizedString Description { get; set; } - public Func> GetEndpoints { get; set; } + public Func> GetEndpoints { get; set; } public Func> CanExecuteAsync { get; set; } public Func> ExecuteAsync { get; set; } public Func> ResumeAsync { get; set; } diff --git a/src/web/modules/Elsa.Web.Components/Services/ActivityShapeFactory.cs b/src/web/modules/Elsa.Web.Components/Services/ActivityShapeFactory.cs index f28b81d35..579e594e2 100644 --- a/src/web/modules/Elsa.Web.Components/Services/ActivityShapeFactory.cs +++ b/src/web/modules/Elsa.Web.Components/Services/ActivityShapeFactory.cs @@ -25,7 +25,7 @@ namespace Elsa.Web.Components.Services var designerMetadata = customFields.GetValue("Designer", StringComparison.OrdinalIgnoreCase)?.ToObject() ?? new ActivityDesignerMetadata(); shape.Metadata.Type = $"Activity_Design"; - shape.Endpoints = descriptor.GetEndpoints().ToList(); + shape.Endpoints = descriptor.GetEndpoints(activity).ToList(); shape.ActivityDescriptor = descriptor; shape.Activity = activity; shape.Designer = designerMetadata;