elsa-core/src/scripting/Elsa.Scripting.Liquid/Extensions/LiquidServiceCollectionExtensions.cs

37 lines
1.5 KiB
C#
Raw Normal View History

2021-03-26 16:26:44 +00:00
using System;
Merge branch 'develop' into feature/elsa-2.0 # Conflicts: # Samples.sln # src/core/Elsa.Abstractions/Elsa.Abstractions.csproj # src/core/Elsa.Core/Elsa.Core.csproj # src/persistence/Elsa.Persistence.EntityFrameworkCore/Extensions/EFCoreServiceCollectionExtensions.cs # src/providers/Elsa.Persistence.EntityFrameworkCore/Elsa.Persistence.EntityFrameworkCore.csproj # src/providers/Elsa.Persistence.YesSql/DbContexts/DesignTimeDbContextFactoryBase.cs # src/providers/Elsa.Persistence.YesSql/DbContexts/MySqlContext.cs # src/providers/Elsa.Persistence.YesSql/DbContexts/MySqlContextFactory.cs # src/providers/Elsa.Persistence.YesSql/Elsa.Persistence.YesSql.csproj # src/providers/Elsa.Persistence.YesSql/Migrations/MySql/20200113102615_InitialCreate.Designer.cs # src/providers/Elsa.Persistence.YesSql/Migrations/MySql/20200113102615_InitialCreate.cs # src/providers/Elsa.Persistence.YesSql/Migrations/MySql/MySqlContextModelSnapshot.cs # src/samples/Elsa.Samples.Timers/Elsa.Samples.Timers.csproj # src/samples/Sample05/Program.cs # src/samples/Sample08/Sample08.csproj # src/samples/Sample08/Startup.cs # src/samples/Sample14/Program.cs # src/samples/Sample14/Sample14.csproj # src/samples/Sample16/Sample16.csproj # src/samples/Sample18/Program.cs # src/samples/Sample18/Sample18.csproj # src/samples/Sample19/Sample19.csproj # src/samples/Sample19/Startup.cs # src/samples/Sample21/Sample21.csproj # src/samples/Sample21/Startup.cs # src/samples/Sample22/Program.cs # src/samples/Sample22/Sample22.csproj # src/samples/Sample23/Program.cs # src/samples/Sample23/Sample23.csproj
2020-01-16 20:23:45 +00:00
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>()
2021-03-26 16:26:44 +00:00
.AddSingleton<LiquidParser>()
.AddLiquidFilter<JsonFilter>("json")
.AddLiquidFilter<Base64Filter>("base64");
}
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;
}
2021-03-26 16:26:44 +00:00
public static IServiceCollection RegisterLiquidTag(this IServiceCollection services, Action<LiquidParser> configure)
{
services.Configure<LiquidOptions>(options => options.ParserConfiguration.Add(configure));
return services;
}
}
}