elsa-core/test/shared/Elsa.Testing.Shared/Helpers/AddExpressionToActivityState.cs

33 lines
1.1 KiB
C#
Raw Normal View History

using System.Threading.Tasks;
using Elsa.ActivityResults;
using Elsa.Attributes;
using Elsa.Expressions;
using Elsa.Services;
using Elsa.Services.Models;
namespace Elsa.Testing.Shared.Helpers
{
public class AddExpressionToActivityState : Activity
{
2021-08-10 10:06:21 +00:00
private readonly IExpressionEvaluator _expressionEvaluator;
private readonly AssertableActivityState _activityState;
2021-08-10 10:06:21 +00:00
[ActivityInput] public string Expression { get; set; } = default!;
[ActivityInput] public string ExpressionSyntax { get; set; } = default!;
public AddExpressionToActivityState(IExpressionEvaluator evaluator, AssertableActivityState activityState)
{
_expressionEvaluator = evaluator;
_activityState = activityState;
}
protected override async ValueTask<IActivityExecutionResult> OnExecuteAsync(ActivityExecutionContext context)
{
var expressionResult = await _expressionEvaluator.TryEvaluateAsync<string>(Expression, ExpressionSyntax, context);
_activityState.Messages.Add(expressionResult.Value ?? "");
return Done();
}
}
}