elsa-core/src/activities/webhooks/Elsa.Activities.Webhooks/Extensions/WebhookOptionsBuilderExtensions.cs
axeleron007 e391884e5f Fix to use EF persistence instead of InMemory fo Webhooks
Fix to use EF persistence instead of InMemory fo Webhooks
2021-06-04 14:11:34 +03:00

42 lines
1.3 KiB
C#

using System;
using Elsa.Activities.Webhooks.ActivityTypes;
using Elsa.Activities.Webhooks.Options;
using Elsa.Activities.Webhooks.Persistence.Decorators;
using Elsa.Services;
using Elsa.Webhooks.Abstractions.Persistence;
using Microsoft.Extensions.DependencyInjection;
namespace Elsa.Activities.Webhooks.Extensions
{
public static class WebhookOptionsBuilderExtensions
{
public static ElsaOptionsBuilder AddWebhooks(
this ElsaOptionsBuilder elsaOptions,
Action<WebhookOptionsBuilder>? configure = default)
{
var services = elsaOptions.Services;
// Configure Webhooks.
var webhookOptionsBuilder = new WebhookOptionsBuilder(elsaOptions.Services);
configure?.Invoke(webhookOptionsBuilder);
// Services.
services
.AddScoped<IActivityTypeProvider, WebhookActivityTypeProvider>()
.AddScoped(sp =>
{
var x = webhookOptionsBuilder.WebhookOptions.WebhookDefinitionStoreFactory(sp);
return x;
});
services.Decorate<IWebhookDefinitionStore, InitializingWebhookDefinitionStore>();
services.Decorate<IWebhookDefinitionStore, EventPublishingWebhookDefinitionStore>();
return elsaOptions;
}
}
}