public static ElsaOptionsBuilder AddConductorActivities(this ElsaOptionsBuilder elsa, Action <ConductorOptions>?configureOptions = default, Action <IHttpClientBuilder>?configureHttpClient = default) { var services = elsa.Services; if (configureOptions != null) { services.Configure(configureOptions); } services.ConfigureCommandsHttpClient(configureHttpClient); services.ConfigureTasksHttpClient(configureHttpClient); services .AddCommandsProvider <OptionsCommandsProvider>() .AddEventsProvider <OptionsEventsProvider>() .AddTasksProvider <OptionsTasksProvider>() .AddActivityTypeProvider <CommandActivityTypeProvider>() .AddActivityTypeProvider <EventActivityTypeProvider>() .AddActivityTypeProvider <TaskActivityTypeProvider>() .AddBookmarkProvider <EventBookmarkProvider>() .AddBookmarkProvider <TaskBookmarkProvider>() .AddSingleton <Scoped <IEnumerable <ICommandsProvider> > >() .AddSingleton <Scoped <IEnumerable <IEventsProvider> > >() .AddSingleton <Scoped <IEnumerable <ITasksProvider> > >(); elsa .AddActivitiesFrom <SendCommand>() .AddCompetingConsumer <SendCommandConsumer, SendCommandModel>("ConductorCommand") .AddCompetingConsumer <RunTaskConsumer, RunTaskModel>("ConductorCommand"); return(elsa); }
private static ElsaOptionsBuilder AddCoreActivities(this ElsaOptionsBuilder options) { if (!options.WithCoreActivities) { return(options); } return(options .AddActivitiesFrom <ElsaOptions>() .AddActivitiesFrom <CompositeActivity>()); }
public static ElsaOptionsBuilder AddTelnyx( this ElsaOptionsBuilder elsaOptions, Action <TelnyxOptions>?configure = default, Func <IServiceProvider, HttpClient>?httpClientFactory = default, Action <IHttpClientBuilder>?configureHttpClientBuilder = default) { var services = elsaOptions.Services; // Configure Telnyx. var telnyxOptions = services.GetTelnyxOptions(); configure?.Invoke(telnyxOptions); // Activities. elsaOptions .AddActivitiesFrom <AnswerCall>(); // Services. services .AddActivityTypeProvider <NotificationActivityTypeProvider>() .AddBookmarkProvidersFrom <NotificationBookmarkProvider>() .AddNotificationHandlers(typeof(TriggerWebhookActivities)) .AddJavaScriptTypeDefinitionProvider <TelnyxTypeDefinitionProvider>() .AddScoped <IWebhookHandler, WebhookHandler>() .AddSingleton <IWebhookFilterService, WebhookFilterService>() .AddSingleton <IWebhookFilter, AttributeBasedWebhookFilter>() .AddSingleton <IWebhookFilter, CallInitiatedWebhookFilter>() .AddScoped(telnyxOptions.ExtensionProviderFactory); // Liquid. services.RegisterLiquidTag(parser => parser.RegisterEmptyTag("telnyx_client_state", TelnyxClientStateTag.WriteToAsync)); // Telnyx API Client. var refitSettings = CreateRefitSettings(); services .AddApiClient <ICallsApi>(refitSettings, httpClientFactory, configureHttpClientBuilder) .AddTransient <ITelnyxClient, TelnyxClient>(); return(elsaOptions); }