Simplified DI registration
This commit is contained in:
parent
258dcad9dc
commit
e63c46317a
|
|
@ -6,14 +6,15 @@ namespace Elsa.Activities.Console.Extensions
|
|||
{
|
||||
public static class ServiceCollectionExtensions
|
||||
{
|
||||
public static IServiceCollection AddConsoleDescriptors(this IServiceCollection services)
|
||||
public static IServiceCollection AddConsoleWorkflowDescriptors(this IServiceCollection services)
|
||||
{
|
||||
return services.AddActivityDescriptors<ActivityDescriptors>();
|
||||
}
|
||||
|
||||
public static IServiceCollection AddConsoleDrivers(this IServiceCollection services)
|
||||
public static IServiceCollection AddConsoleWorkflowDrivers(this IServiceCollection services)
|
||||
{
|
||||
return services
|
||||
.AddConsoleWorkflowDescriptors()
|
||||
.AddActivityDriver<ReadLineDriver>()
|
||||
.AddActivityDriver<WriteLineDriver>();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using AspNetCore.AsyncInitialization;
|
||||
using Elsa.Activities.Http.Drivers;
|
||||
using Elsa.Activities.Http.Initialization;
|
||||
using Elsa.Activities.Http.Services;
|
||||
|
|
@ -11,19 +12,19 @@ namespace Elsa.Activities.Http.Extensions
|
|||
{
|
||||
public static class ServiceCollectionExtensions
|
||||
{
|
||||
public static IServiceCollection AddHttpDescriptors(this IServiceCollection services)
|
||||
public static IServiceCollection AddHttpWorkflowDescriptors(this IServiceCollection services)
|
||||
{
|
||||
return services.AddActivityDescriptors<ActivityDescriptors>();
|
||||
}
|
||||
|
||||
public static IServiceCollection AddHttpDrivers(this IServiceCollection services)
|
||||
{
|
||||
services
|
||||
.AddSingleton<IHttpWorkflowCache, DefaultHttpWorkflowCache>()
|
||||
.AddAsyncInitializer<HttpWorkflowCacheInitializer>()
|
||||
.AddActivityDriver<HttpRequestTriggerDriver>();
|
||||
|
||||
public static IServiceCollection AddHttpWorkflowDrivers(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddSingleton<IHttpWorkflowCache, DefaultHttpWorkflowCache>();
|
||||
services.AddAsyncInitialization();
|
||||
services.TryAddTransient<IAsyncInitializer, HttpWorkflowCacheInitializer>();
|
||||
services.AddActivityDriver<HttpRequestTriggerDriver>();
|
||||
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
|
||||
|
||||
return services;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,14 +6,15 @@ namespace Elsa.Activities.Primitives.Extensions
|
|||
{
|
||||
public static class ServiceCollectionExtensions
|
||||
{
|
||||
public static IServiceCollection AddPrimitiveDescriptors(this IServiceCollection services)
|
||||
public static IServiceCollection AddPrimitiveWorkflowDescriptors(this IServiceCollection services)
|
||||
{
|
||||
return services.AddActivityDescriptors<ActivityDescriptors>();
|
||||
}
|
||||
|
||||
public static IServiceCollection AddPrimitiveDrivers(this IServiceCollection services)
|
||||
public static IServiceCollection AddPrimitiveWorkflowDrivers(this IServiceCollection services)
|
||||
{
|
||||
return services
|
||||
.AddPrimitiveWorkflowDescriptors()
|
||||
.AddActivityDriver<SetVariableDriver>()
|
||||
.AddActivityDriver<ForEachDriver>()
|
||||
.AddActivityDriver<IfElseDriver>();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
namespace Elsa.Extensions
|
||||
{
|
||||
|
|
@ -7,13 +8,15 @@ namespace Elsa.Extensions
|
|||
public static IServiceCollection AddActivityDescriptors<T>(this IServiceCollection services)
|
||||
where T : class, IActivityDescriptorProvider
|
||||
{
|
||||
return services.AddSingleton<IActivityDescriptorProvider, T>();
|
||||
services.TryAddSingleton<IActivityDescriptorProvider, T>();
|
||||
return services;
|
||||
}
|
||||
|
||||
public static IServiceCollection AddActivityDriver<T>(this IServiceCollection services)
|
||||
where T : class, IActivityDriver
|
||||
{
|
||||
return services.AddSingleton<IActivityDriver, T>();
|
||||
services.TryAddSingleton<IActivityDriver, T>();
|
||||
return services;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@ using Elsa.Serialization;
|
|||
using Elsa.Serialization.Formatters;
|
||||
using Elsa.Serialization.Tokenizers;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
namespace Elsa.Extensions
|
||||
{
|
||||
|
|
@ -11,31 +12,33 @@ namespace Elsa.Extensions
|
|||
{
|
||||
public static IServiceCollection AddWorkflowsCore(this IServiceCollection services)
|
||||
{
|
||||
return services
|
||||
.AddSingleton<IIdGenerator, DefaultIdGenerator>()
|
||||
.AddScoped<IWorkflowSerializer, WorkflowSerializer>()
|
||||
.AddScoped<IWorkflowTokenizer, WorkflowTokenizer>()
|
||||
.AddScoped<IActivityHarvester, TypedActivityHarvester>()
|
||||
.AddScoped<IActivityLibrary, ActivityLibrary>()
|
||||
.AddActivityDescriptors<ActivityDescriptors>()
|
||||
.AddSingleton<ITokenFormatter, JsonTokenFormatter>()
|
||||
.AddSingleton<ITokenFormatter, YamlTokenFormatter>()
|
||||
.AddSingleton<ITokenFormatter, XmlTokenFormatter>()
|
||||
.AddSingleton<ITokenFormatterProvider, TokenFormatterProvider>()
|
||||
.AddSingleton<ITokenizerInvoker, TokenizerInvoker>()
|
||||
.AddSingleton<ITokenizer, DefaultTokenizer>()
|
||||
.AddSingleton<ITokenizer, ActivityTokenizer>();
|
||||
services.TryAddSingleton<IIdGenerator, DefaultIdGenerator>();
|
||||
services.TryAddScoped<IWorkflowSerializer, WorkflowSerializer>();
|
||||
services.TryAddScoped<IWorkflowTokenizer, WorkflowTokenizer>();
|
||||
services.TryAddScoped<IActivityHarvester, TypedActivityHarvester>();
|
||||
services.TryAddScoped<IActivityLibrary, ActivityLibrary>();
|
||||
services.AddActivityDescriptors<ActivityDescriptors>();
|
||||
services.TryAddSingleton<ITokenFormatter, JsonTokenFormatter>();
|
||||
services.TryAddSingleton<ITokenFormatter, YamlTokenFormatter>();
|
||||
services.TryAddSingleton<ITokenFormatter, XmlTokenFormatter>();
|
||||
services.TryAddSingleton<ITokenFormatterProvider, TokenFormatterProvider>();
|
||||
services.TryAddSingleton<ITokenizerInvoker, TokenizerInvoker>();
|
||||
services.TryAddSingleton<ITokenizer, DefaultTokenizer>();
|
||||
services.TryAddSingleton<ITokenizer, ActivityTokenizer>();
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
public static IServiceCollection AddWorkflowsInvoker(this IServiceCollection services)
|
||||
{
|
||||
return services
|
||||
.AddSingleton<IWorkflowInvoker, WorkflowInvoker>()
|
||||
.AddSingleton<IActivityInvoker, ActivityInvoker>()
|
||||
.AddSingleton<IActivityDriverRegistry, ActivityDriverRegistry>()
|
||||
.AddSingleton<IExpressionEvaluator, PlainTextEvaluator>()
|
||||
.AddSingleton<IExpressionEvaluator, JavaScriptEvaluator>()
|
||||
.AddSingleton<IWorkflowExpressionEvaluator, WorkflowExpressionEvaluator>();
|
||||
services.TryAddSingleton<IWorkflowInvoker, WorkflowInvoker>();
|
||||
services.TryAddSingleton<IActivityInvoker, ActivityInvoker>();
|
||||
services.TryAddSingleton<IActivityDriverRegistry, ActivityDriverRegistry>();
|
||||
services.TryAddSingleton<IExpressionEvaluator, PlainTextEvaluator>();
|
||||
services.TryAddSingleton<IExpressionEvaluator, JavaScriptEvaluator>();
|
||||
services.TryAddSingleton<IWorkflowExpressionEvaluator, WorkflowExpressionEvaluator>();
|
||||
|
||||
return services;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
using Elsa.Extensions;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Elsa.Runtime.Extensions
|
||||
|
|
@ -7,6 +8,8 @@ namespace Elsa.Runtime.Extensions
|
|||
public static IServiceCollection AddWorkflowsHost(this IServiceCollection services)
|
||||
{
|
||||
return services
|
||||
.AddWorkflowsCore()
|
||||
.AddWorkflowsInvoker()
|
||||
.AddScoped<IWorkflowHost, WorkflowHost>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,16 +25,11 @@ namespace SampleHost.Web
|
|||
{
|
||||
services
|
||||
.AddLocalization()
|
||||
.AddWorkflowsCore()
|
||||
.AddWorkflowsInvoker()
|
||||
.AddWorkflowsHost()
|
||||
.AddWorkflowsFileSystemPersistence(Configuration.GetSection("FileStore"))
|
||||
.AddPrimitiveDrivers()
|
||||
.AddPrimitiveDescriptors()
|
||||
.AddConsoleDrivers()
|
||||
.AddConsoleDescriptors()
|
||||
.AddHttpDrivers()
|
||||
.AddHttpDescriptors();
|
||||
.AddPrimitiveWorkflowDrivers()
|
||||
.AddConsoleWorkflowDrivers()
|
||||
.AddHttpWorkflowDrivers();
|
||||
|
||||
services
|
||||
.AddMvc()
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ namespace Elsa.Web.Activities.Console
|
|||
public override void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services
|
||||
.AddConsoleDescriptors()
|
||||
.AddConsoleWorkflowDescriptors()
|
||||
.AddActivityDisplay<ReadLineDisplay>()
|
||||
.AddActivityDisplay<WriteLineDisplay>();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ namespace Elsa.Web.Activities.Http
|
|||
public override void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services
|
||||
.AddHttpDescriptors()
|
||||
.AddHttpWorkflowDescriptors()
|
||||
.AddActivityDisplay<HttpRequestTriggerDisplay>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ namespace Elsa.Web.Activities.Primitives
|
|||
public override void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services
|
||||
.AddPrimitiveDescriptors()
|
||||
.AddPrimitiveWorkflowDescriptors()
|
||||
.AddActivityDisplay<IfElseDisplay>()
|
||||
.AddActivityDisplay<ForEachDisplay>()
|
||||
.AddActivityDisplay<SetVariableDisplay>()
|
||||
|
|
|
|||
Loading…
Reference in a new issue