Refactor commit state behavior to use commit strategies
Replaced `ActivityCommitStateBehavior` with a more flexible commit strategy approach utilizing `CommitStrategyDescriptor`. Updated relevant APIs, services, and UI components to support the new model, enhancing configurability and maintainability.
This commit is contained in:
parent
47a7c31714
commit
ca0dcd2f83
|
|
@ -187,10 +187,10 @@ public static class ActivityExtensions
|
|||
/// <summary>
|
||||
/// Gets the commit state behavior for the specified activity.
|
||||
/// </summary>
|
||||
public static ActivityCommitStateBehavior GetCommitStateBehavior(this JsonObject activity) => activity.TryGetProperty<ActivityCommitStateBehavior?>("customProperties", "commitStateBehavior") ?? ActivityCommitStateBehavior.Default;
|
||||
public static string? GetCommitStrategy(this JsonObject activity) => activity.TryGetProperty<string?>("customProperties", "commitStrategyName");
|
||||
|
||||
/// <summary>
|
||||
/// Sets the commit state behavior for the specified activity.
|
||||
/// </summary>
|
||||
public static void SetCommitStateBehavior(this JsonObject activity, ActivityCommitStateBehavior value) => activity.SetProperty(JsonValue.Create(value.ToString()), "customProperties", "commitStateBehavior");
|
||||
public static void SetCommitStrategy(this JsonObject activity, string? name) => activity.SetProperty(JsonValue.Create(name), "customProperties", "commitStrategyName");
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@ using Elsa.Api.Client.Options;
|
|||
using Elsa.Api.Client.Resources.ActivityDescriptorOptions.Contracts;
|
||||
using Elsa.Api.Client.Resources.ActivityDescriptors.Contracts;
|
||||
using Elsa.Api.Client.Resources.ActivityExecutions.Contracts;
|
||||
using Elsa.Api.Client.Resources.CommitStrategies.Contracts;
|
||||
using Elsa.Api.Client.Resources.Features.Contracts;
|
||||
using Elsa.Api.Client.Resources.Identity.Contracts;
|
||||
using Elsa.Api.Client.Resources.IncidentStrategies.Contracts;
|
||||
|
|
@ -73,6 +74,7 @@ public static class DependencyInjectionExtensions
|
|||
services.AddApi<IWorkflowActivationStrategiesApi>(builderOptions);
|
||||
services.AddApi<IIncidentStrategiesApi>(builderOptions);
|
||||
services.AddApi<ILogPersistenceStrategiesApi>(builderOptions);
|
||||
services.AddApi<ICommitStrategiesApi>(builderOptions);
|
||||
services.AddApi<ILoginApi>(builderOptions);
|
||||
services.AddApi<IFeaturesApi>(builderOptions);
|
||||
services.AddApi<IJavaScriptApi>(builderOptions);
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models;
|
||||
|
||||
public enum ActivityCommitStateBehavior
|
||||
{
|
||||
/// <summary>
|
||||
/// Never commit state, regardless of the workflow commit state options.
|
||||
/// </summary>
|
||||
Never,
|
||||
|
||||
/// <summary>
|
||||
/// Look at the workflow commit state options to determine if state should be committed.
|
||||
/// </summary>
|
||||
Default,
|
||||
|
||||
/// <summary>
|
||||
/// Commit state before the activity starts.
|
||||
/// </summary>
|
||||
Executing,
|
||||
|
||||
/// <summary>
|
||||
/// Commit state after the activity executes.
|
||||
/// </summary>
|
||||
Executed,
|
||||
|
||||
/// <summary>
|
||||
/// Commit state before the activity starts and after the activity executes.
|
||||
/// </summary>
|
||||
BeforeAndAfterExecution
|
||||
}
|
||||
|
|
@ -33,5 +33,5 @@ public class WorkflowOptions
|
|||
/// <summary>
|
||||
/// The options for committing workflow state.
|
||||
/// </summary>
|
||||
public WorkflowCommitStateOptions CommitStateOptions { get; set; } = new();
|
||||
public string? CommitStrategyName { get; set; }
|
||||
}
|
||||
Loading…
Reference in a new issue