2023-07-31 18:27:28 +00:00
|
|
|
using Elsa.Expressions.Contracts;
|
|
|
|
|
using Elsa.Expressions.Models;
|
|
|
|
|
|
|
|
|
|
namespace Elsa.Expressions;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2023-11-14 19:44:42 +00:00
|
|
|
/// An expression handler for Delegate expressions.
|
2023-07-31 18:27:28 +00:00
|
|
|
/// </summary>
|
|
|
|
|
public class DelegateExpressionHandler : IExpressionHandler
|
|
|
|
|
{
|
|
|
|
|
/// <inheritdoc />
|
2023-12-06 21:32:08 +00:00
|
|
|
public async ValueTask<object?> EvaluateAsync(Expression expression, Type returnType, ExpressionExecutionContext context, ExpressionEvaluatorOptions options)
|
2023-07-31 18:27:28 +00:00
|
|
|
{
|
2023-11-14 19:44:42 +00:00
|
|
|
var value = expression.Value is Func<ExpressionExecutionContext, ValueTask<object?>> @delegate ? await @delegate(context) : default;
|
2023-07-31 18:27:28 +00:00
|
|
|
return value;
|
|
|
|
|
}
|
|
|
|
|
}
|