parent
eae633c102
commit
a33cb1bc88
|
|
@ -24,7 +24,7 @@ namespace Elsa.Builders
|
|||
IActivityBuilder Add<T>(string activityTypeName, Action<ISetupActivity<T>>? setup = default, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) where T : class, IActivity;
|
||||
IOutcomeBuilder When(string outcome);
|
||||
IActivityBuilder Then(IActivityBuilder targetActivity);
|
||||
IConnectionBuilder ThenNamed(string activityName);
|
||||
IActivityBuilder ThenNamed(string activityName);
|
||||
IActivityBuilder WithId(string? value);
|
||||
IActivityBuilder WithName(string? value);
|
||||
IActivityBuilder WithDisplayName(string? value);
|
||||
|
|
|
|||
|
|
@ -76,11 +76,15 @@ namespace Elsa.Builders
|
|||
return this;
|
||||
}
|
||||
|
||||
public virtual IConnectionBuilder ThenNamed(string activityName) =>
|
||||
public virtual IActivityBuilder ThenNamed(string activityName)
|
||||
{
|
||||
WorkflowBuilder.Connect(
|
||||
() => this,
|
||||
() => WorkflowBuilder.Activities.First(x => x.Name == activityName));
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public IActivityBuilder WithId(string? value)
|
||||
{
|
||||
ActivityId = value!;
|
||||
|
|
|
|||
|
|
@ -160,6 +160,12 @@ namespace Elsa.Builders
|
|||
return connectionBuilder;
|
||||
}
|
||||
|
||||
public override IActivityBuilder ThenNamed(string activityName)
|
||||
{
|
||||
var compositeName = GetCompositeName(activityName)!;
|
||||
return base.ThenNamed(compositeName);
|
||||
}
|
||||
|
||||
public ICompositeActivityBlueprint Build(string activityIdPrefix = "activity")
|
||||
{
|
||||
var compositeActivityBlueprint = new CompositeActivityBlueprint
|
||||
|
|
@ -240,14 +246,16 @@ namespace Elsa.Builders
|
|||
}
|
||||
}
|
||||
|
||||
private static IActivityBlueprint BuildActivityBlueprint(IActivityBuilder builder, ICompositeActivityBlueprint parent)
|
||||
private IActivityBlueprint BuildActivityBlueprint(IActivityBuilder builder, ICompositeActivityBlueprint parent)
|
||||
{
|
||||
var isComposite = typeof(CompositeActivity).IsAssignableFrom(builder.ActivityType);
|
||||
return isComposite
|
||||
? new CompositeActivityBlueprint(builder.ActivityId, parent, builder.Name, builder.DisplayName, builder.Description, builder.ActivityTypeName, builder.PersistWorkflowEnabled, builder.LoadWorkflowContextEnabled,
|
||||
? new CompositeActivityBlueprint(builder.ActivityId, parent, GetCompositeName(builder.Name), builder.DisplayName, builder.Description, builder.ActivityTypeName, builder.PersistWorkflowEnabled, builder.LoadWorkflowContextEnabled,
|
||||
builder.SaveWorkflowContextEnabled, builder.PersistOutputEnabled, builder.Source)
|
||||
: new ActivityBlueprint(builder.ActivityId, parent, builder.Name, builder.DisplayName, builder.Description, builder.ActivityTypeName, builder.PersistWorkflowEnabled, builder.LoadWorkflowContextEnabled,
|
||||
: new ActivityBlueprint(builder.ActivityId, parent, GetCompositeName(builder.Name), builder.DisplayName, builder.Description, builder.ActivityTypeName, builder.PersistWorkflowEnabled, builder.LoadWorkflowContextEnabled,
|
||||
builder.SaveWorkflowContextEnabled, builder.PersistOutputEnabled, builder.Source);
|
||||
}
|
||||
|
||||
private string? GetCompositeName(string? activityName) => activityName == null ? null : $"{ActivityId}:{activityName}";
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue