make it so you can start a specific version of a workflow (#4103)

This commit is contained in:
herblinernexxbizz 2023-06-05 14:17:02 +02:00 committed by GitHub
parent b6f88b7385
commit 1f7df0efcd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 2 deletions

View file

@ -44,7 +44,13 @@ internal class Execute : ElsaEndpoint<Request, Response>
public override async Task HandleAsync(Request request, CancellationToken cancellationToken)
{
var definitionId = request.DefinitionId;
var exists = await _store.AnyAsync(new WorkflowDefinitionFilter { DefinitionId = definitionId, VersionOptions = VersionOptions.Published }, cancellationToken);
var versionOptions = VersionOptions.Published;
if (request.Version.HasValue) {
versionOptions = VersionOptions.SpecificVersion(request.Version.Value);
}
var exists = await _store.AnyAsync(new WorkflowDefinitionFilter { DefinitionId = definitionId, VersionOptions = versionOptions }, cancellationToken);
if (!exists)
{
@ -54,7 +60,7 @@ internal class Execute : ElsaEndpoint<Request, Response>
var correlationId = request.CorrelationId;
var input = (IDictionary<string, object>?)request.Input;
var startWorkflowOptions = new StartWorkflowRuntimeOptions(correlationId, input, VersionOptions.Published, request.TriggerActivityId);
var startWorkflowOptions = new StartWorkflowRuntimeOptions(correlationId, input, versionOptions, request.TriggerActivityId);
var result = await _workflowRuntime.StartWorkflowAsync(definitionId, startWorkflowOptions, cancellationToken);
// If a workflow fault occurred, respond appropriately with a 500 internal server error.

View file

@ -9,6 +9,7 @@ internal class Request
public string DefinitionId { get; set; } = default!;
public string? CorrelationId { get; set; }
public string? TriggerActivityId { get; set; }
public int? Version { get; set; }
[JsonConverter(typeof(ExpandoObjectConverterFactory))]
public object? Input { get; set; }