elsa-core/samples/Sample13/ScriptEngineConfigurator.cs

26 lines
782 B
C#
Raw Normal View History

2019-07-25 20:00:44 +00:00
using System;
using Elsa.Scripting;
using Elsa.Services.Models;
using Jint;
using NodaTime;
namespace Sample13
{
/// <summary>
/// Add custom JavaScript functions that are easy to use in workflow expressions.
/// </summary>
public class ScriptEngineConfigurator : IScriptEngineConfigurator
{
private readonly IClock clock;
public ScriptEngineConfigurator(IClock clock)
{
this.clock = clock;
}
public void Configure(Engine engine, WorkflowExecutionContext workflowExecutionContext)
{
engine.SetValue("getDateOfBirth", (Func<string, object>) (age => clock.GetCurrentInstant().Minus(Duration.FromDays(int.Parse(age) * 365)).ToDateTimeUtc().Year));
}
}
}