2021-03-19 20:15:50 +00:00
|
|
|
using System;
|
|
|
|
|
using Elsa;
|
|
|
|
|
using Elsa.Activities.Webhooks.ActivityTypes;
|
|
|
|
|
using Elsa.Activities.Webhooks.Options;
|
|
|
|
|
using Elsa.Activities.Webhooks.Persistence;
|
|
|
|
|
using Elsa.Activities.Webhooks.Persistence.Decorators;
|
2021-03-20 06:45:08 +00:00
|
|
|
using Elsa.ActivityProviders;
|
2021-03-19 20:15:50 +00:00
|
|
|
|
|
|
|
|
// ReSharper disable once CheckNamespace
|
|
|
|
|
namespace Microsoft.Extensions.DependencyInjection
|
|
|
|
|
{
|
|
|
|
|
public static class ElsaOptionsExtensions
|
|
|
|
|
{
|
2021-04-07 10:45:34 +00:00
|
|
|
public static ElsaOptionsBuilder AddWebhooks(
|
|
|
|
|
this ElsaOptionsBuilder elsaOptions,
|
2021-03-19 20:15:50 +00:00
|
|
|
Action<WebhookOptions>? configure = default)
|
|
|
|
|
{
|
|
|
|
|
var services = elsaOptions.Services;
|
|
|
|
|
|
|
|
|
|
// Configure Webhooks.
|
|
|
|
|
var options = new WebhookOptions();
|
|
|
|
|
configure?.Invoke(options);
|
|
|
|
|
|
|
|
|
|
// Services.
|
|
|
|
|
services
|
2021-03-20 06:45:08 +00:00
|
|
|
.AddScoped<IActivityTypeProvider, WebhookActivityTypeProvider>()
|
2021-03-19 20:15:50 +00:00
|
|
|
.AddScoped(options.WebhookDefinitionStoreFactory);
|
|
|
|
|
|
|
|
|
|
services.Decorate<IWebhookDefinitionStore, InitializingWebhookDefinitionStore>();
|
|
|
|
|
|
|
|
|
|
return elsaOptions;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|