elsa-core/src/scripting/Elsa.Scripting.Liquid/Extensions/LiquidServiceCollectionExtensions.cs
Sipke Schoorstra a14f7cc267
Expressions editor (#695)
* A functioning monaco editor

* Incremental work on intellisense

* Add Workflow Context Options settings to designer

* Rudimentary work on variables
2021-03-02 09:00:51 +01:00

28 lines
1.1 KiB
C#

using Elsa.Expressions;
using Elsa.Scripting.Liquid.Filters;
using Elsa.Scripting.Liquid.Options;
using Elsa.Scripting.Liquid.Services;
using Microsoft.Extensions.DependencyInjection;
namespace Elsa.Scripting.Liquid.Extensions
{
public static class LiquidServiceCollectionExtensions
{
public static IServiceCollection AddLiquidExpressionEvaluator(this IServiceCollection services)
{
return services
.TryAddProvider<IExpressionHandler, LiquidHandler>(ServiceLifetime.Scoped)
.AddMemoryCache()
.AddNotificationHandlers(typeof(LiquidServiceCollectionExtensions))
.AddScoped<ILiquidTemplateManager, LiquidTemplateManager>()
.AddLiquidFilter<JsonFilter>("json");
}
public static IServiceCollection AddLiquidFilter<T>(this IServiceCollection services, string name) where T : class, ILiquidFilter
{
services.Configure<LiquidOptions>(options => options.FilterRegistrations.Add(name, typeof(T)));
services.AddScoped<T>();
return services;
}
}
}