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(ServiceLifetime.Scoped) .AddMemoryCache() .AddNotificationHandlers(typeof(LiquidServiceCollectionExtensions)) .AddScoped() .AddLiquidFilter("json"); } public static IServiceCollection AddLiquidFilter(this IServiceCollection services, string name) where T : class, ILiquidFilter { services.Configure(options => options.FilterRegistrations.Add(name, typeof(T))); services.AddScoped(); return services; } } }