public static ElsaOptionsBuilder AddSqlServerActivities(this ElsaOptionsBuilder elsa) { elsa.Services .AddSingleton <ISqlClientFactory, SqlClientFactory>(); elsa.AddActivity <Activities.ExecuteSqlQuery>(); elsa.AddActivity <Activities.ExecuteSqlCommand>(); elsa.AddSqlScripting(); return(elsa); }
public static ElsaOptionsBuilder AddAzureServiceBusActivities(this ElsaOptionsBuilder options, Action <AzureServiceBusOptions>?configure) { if (configure != null) { options.Services.Configure(configure); } else { options.Services.AddOptions <AzureServiceBusOptions>(); } options.Services .AddSingleton(CreateServiceBusConnection) .AddSingleton(CreateServiceBusManagementClient) .AddSingleton <IMessageSenderFactory, MessageSenderFactory>() .AddSingleton <IWorkerManager, WorkerManager>() .AddHostedService <StartWorkers>() .AddBookmarkProvider <MessageReceivedBookmarkProvider>() ; options.AddPubSubConsumer <UpdateWorkers, TriggerIndexingFinished>("WorkflowManagementEvents"); options.AddPubSubConsumer <UpdateWorkers, TriggersDeleted>("WorkflowManagementEvents"); options.AddPubSubConsumer <UpdateWorkers, BookmarkIndexingFinished>("WorkflowManagementEvents"); options.AddPubSubConsumer <UpdateWorkers, BookmarksDeleted>("WorkflowManagementEvents"); options .AddActivity <AzureServiceBusQueueMessageReceived>() .AddActivity <SendAzureServiceBusQueueMessage>() .AddActivity <SendAzureServiceBusTopicMessage>() .AddActivity <AzureServiceBusTopicMessageReceived>(); return(options); }
/// <summary> /// Adds services which are common to temporal activities. This method is intended for internal use only. /// </summary> /// <remarks> /// <para> /// Instead of calling this method directly, when setting up Elsa for temporal (time-based) activities, /// developers should make use of one of the implementation-specific add-temporal-activities methods. /// Without providing an implementation-specific configuration in <paramref name="configure"/>, this method /// will not fully set up the temporal activities. /// </para> /// </remarks> /// <param name="options">Elsa options</param> /// <param name="configure">The configuration for temporal activity options</param> public static ElsaOptionsBuilder AddCommonTemporalActivities(this ElsaOptionsBuilder options, Action <TimersOptions>?configure = default) { var timersOptions = new TimersOptions(options.Services); configure?.Invoke(timersOptions); options.Services .AddNotificationHandlers(typeof(UnscheduleTimers)) .AddHostedService <ScopedBackgroundService <StartJobs> >() .AddBookmarkProvider <TimerBookmarkProvider>() .AddBookmarkProvider <CronBookmarkProvider>() .AddBookmarkProvider <StartAtBookmarkProvider>(); options .AddActivity <Cron>() .AddActivity <Timer>() .AddActivity <StartAt>() .AddActivity <ClearTimer>(); // Register a consumer to process instructions to schedule activities from bookmarks. options.AddCompetingConsumer <ScheduleBookmarkConsumer, ScheduleTemporalBookmark>("ScheduleBookmark"); options.AddCompetingConsumer <ScheduleTriggerConsumer, ScheduleTemporalTrigger>("ScheduleBookmark"); return(options); }
public static ElsaOptionsBuilder AddFileActivities(this ElsaOptionsBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.AddActivity <DeleteFile>() .AddActivity <EnumerateFiles>() .AddActivity <FileExists>() .AddActivity <OutFile>() .AddActivity <ReadFile>() .AddActivity <TempFile>() .AddActivity <WatchDirectory>(); builder.AddPubSubConsumer <RecreateFileSystemWatchersConsumer, TriggerIndexingFinished>("WorkflowManagementEvents"); builder.AddPubSubConsumer <RecreateFileSystemWatchersConsumer, TriggersDeleted>("WorkflowManagementEvents"); builder.AddPubSubConsumer <RecreateFileSystemWatchersConsumer, BookmarkIndexingFinished>("WorkflowManagementEvents"); builder.AddPubSubConsumer <RecreateFileSystemWatchersConsumer, BookmarksDeleted>("WorkflowManagementEvents"); builder.Services.AddBookmarkProvider <FileCreatedBookmarkProvider>() .AddAutoMapperProfile <FileSystemEventProfile>() .AddSingleton <FileSystemWatchersStarter>() .AddHostedService <StartFileSystemWatchers>(); return(builder); }
public static ElsaOptionsBuilder AddFileActivities(this ElsaOptionsBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.AddActivity <DeleteFile>() .AddActivity <EnumerateFiles>() .AddActivity <FileExists>() .AddActivity <OutFile>() .AddActivity <ReadFile>() .AddActivity <TempFile>() .AddActivity <WatchDirectory>(); builder.AddPubSubConsumer <RecreateFileSystemWatchersConsumer, WorkflowDefinitionPublished>("WorkflowDefinitionEvents"); builder.AddPubSubConsumer <RecreateFileSystemWatchersConsumer, WorkflowDefinitionRetracted>("WorkflowDefinitionEvents"); builder.AddPubSubConsumer <RecreateFileSystemWatchersConsumer, WorkflowDefinitionDeleted>("WorkflowDefinitionEvents"); builder.Services.AddBookmarkProvider <FileCreatedBookmarkProvider>() .AddAutoMapperProfile <FileSystemEventProfile>() .AddSingleton <FileSystemWatchersStarter>() .AddSingleton <Scoped <IWorkflowLaunchpad> >() .AddStartupTask <StartFileSystemWatchers>(); return(builder); }
public static ElsaOptionsBuilder AddUserTaskActivities(this ElsaOptionsBuilder elsa) { elsa.Services .AddScoped <IUserTaskService, UserTaskService>() .AddBookmarkProvider <UserTaskBookmarkProvider>(); return(elsa.AddActivity <UserTask>()); }
public static ElsaOptionsBuilder AddBlobStorageActivities(this ElsaOptionsBuilder options) { options .AddActivity <WriteBlob>() .AddActivity <ReadBlob>() .AddActivity <BlobExists>() .AddActivity <DeleteBlob>() ; return(options); }
public static ElsaOptionsBuilder AddConsoleActivities(this ElsaOptionsBuilder options, TextReader?standardIn = default, TextWriter?standardOut = default) { options.Services .AddSingleton(standardIn ?? Console.In) .AddSingleton(standardOut ?? Console.Out); options .AddActivity <ReadLine>() .AddActivity <WriteLine>(); return(options); }
public static ElsaOptionsBuilder AddUserActivities(this ElsaOptionsBuilder elsa) { return(elsa .AddActivity <CreateUser>() .AddActivity <DeleteUser>() .AddActivity <ActivateUser>() .AddActivity <DocumentContainer>() .AddActivity <UploadFile>() .AddActivity <DocumentUpdateFile>() .AddActivity <DocumentExtractor>() .AddActivity <DocumentAddIndex>() .AddActivity <GetDocument>()); }
public static ElsaOptionsBuilder AddMassTransitActivities(this ElsaOptionsBuilder options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } options.Services.AddBookmarkProvider <MessageReceivedTriggerProvider>(); return(options .AddActivity <PublishMassTransitMessage>() .AddActivity <ReceiveMassTransitMessage>() .AddActivity <SendMassTransitMessage>()); }
public static ElsaOptionsBuilder AddBlobStorageActivities(this ElsaOptionsBuilder options, Func <IServiceProvider, IBlobStorage>?configureBlobStorage = default) { if (configureBlobStorage != default) { options.UseStorage(configureBlobStorage); } options .AddActivity <WriteBlob>() .AddActivity <ReadBlob>() .AddActivity <BlobExists>() .AddActivity <DeleteBlob>() ; return(options); }
public static ElsaOptionsBuilder AddFileActivities(this ElsaOptionsBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.AddActivity <DeleteFile>() .AddActivity <EnumerateFiles>() .AddActivity <FileExists>() .AddActivity <OutFile>() .AddActivity <ReadFile>() .AddActivity <TempFile>(); return(builder); }
public static ElsaOptionsBuilder AddAzureServiceBusActivities(this ElsaOptionsBuilder options, Action <AzureServiceBusOptions>?configure) { if (configure != null) { options.Services.Configure(configure); } else { options.Services.AddOptions <AzureServiceBusOptions>(); } options.Services .AddSingleton(CreateServiceBusConnection) .AddSingleton(CreateServiceBusManagementClient) .AddSingleton <BusClientFactory>() .AddSingleton <IQueueMessageSenderFactory>(sp => sp.GetRequiredService <BusClientFactory>()) .AddSingleton <IQueueMessageReceiverClientFactory>(sp => sp.GetRequiredService <BusClientFactory>()) .AddSingleton <ITopicMessageSenderFactory>(sp => sp.GetRequiredService <BusClientFactory>()) .AddSingleton <ITopicMessageReceiverFactory>(sp => sp.GetRequiredService <BusClientFactory>()) .AddSingleton <IServiceBusQueuesStarter, ServiceBusQueuesStarter>() .AddSingleton <IServiceBusTopicsStarter, ServiceBusTopicsStarter>() .AddSingleton <Scoped <IWorkflowLaunchpad> >() .AddStartupTask <StartServiceBusQueues>() .AddStartupTask <StartServiceBusTopics>() .AddBookmarkProvider <QueueMessageReceivedBookmarkProvider>() .AddBookmarkProvider <TopicMessageReceivedBookmarkProvider>() ; options.AddPubSubConsumer <RestartServiceBusQueuesConsumer, WorkflowDefinitionPublished>("WorkflowDefinitionEvents"); options.AddPubSubConsumer <RestartServiceBusQueuesConsumer, WorkflowDefinitionRetracted>("WorkflowDefinitionEvents"); options.AddPubSubConsumer <RestartServiceBusQueuesConsumer, WorkflowDefinitionDeleted>("WorkflowDefinitionEvents"); options.AddPubSubConsumer <RestartServiceBusTopicsConsumer, WorkflowDefinitionPublished>("WorkflowDefinitionEvents"); options.AddPubSubConsumer <RestartServiceBusTopicsConsumer, WorkflowDefinitionRetracted>("WorkflowDefinitionEvents"); options .AddActivity <AzureServiceBusQueueMessageReceived>() .AddActivity <SendAzureServiceBusQueueMessage>() .AddActivity <SendAzureServiceBusTopicMessage>() .AddActivity <AzureServiceBusTopicMessageReceived>() ; return(options); }
/// <summary> /// Adds services which are common to temporal activities. This method is intended for internal use only. /// </summary> /// <remarks> /// <para> /// Instead of calling this method directly, when setting up Elsa for temporal (time-based) activities, /// developers should make use of one of the implementation-specific add-temporal-activities methods. /// Without providing an implementation-specific configuration in <paramref name="configure"/>, this method /// will not fully set up the temporal activities. /// </para> /// </remarks> /// <param name="options">Elsa options</param> /// <param name="configure">The configuration for temporal activity options</param> public static ElsaOptionsBuilder AddCommonTemporalActivities(this ElsaOptionsBuilder options, Action <TimersOptions>?configure = default) { var timersOptions = new TimersOptions(options.Services); configure?.Invoke(timersOptions); options.Services .AddNotificationHandlers(typeof(RemoveScheduledTriggers)) .AddHostedService <ScopedBackgroundService <StartJobs> >() .AddBookmarkProvider <TimerBookmarkProvider>() .AddBookmarkProvider <CronBookmarkProvider>() .AddBookmarkProvider <StartAtBookmarkProvider>(); options .AddActivity <Cron>() .AddActivity <Timer>() .AddActivity <StartAt>() .AddActivity <ClearTimer>(); return(options); }
public static ElsaOptionsBuilder AddRebusActivities(this ElsaOptionsBuilder options, params Type[] messageTypes) { var services = options.Services; foreach (var messageType in messageTypes) { var handlerServiceType = typeof(IHandleMessages <>).MakeGenericType(messageType); var handlerImplementationType = typeof(MessageConsumer <>).MakeGenericType(messageType); services.AddTransient(handlerServiceType, handlerImplementationType); } services .AddBookmarkProvider <MessageReceivedTriggerProvider>() .AddStartupTask(sp => ActivatorUtilities.CreateInstance <CreateSubscriptions>(sp, (object)messageTypes)); options .AddActivity <PublishRebusMessage>() .AddActivity <SendRebusMessage>() .AddActivity <RebusMessageReceived>(); return(options); }
public static ElsaOptionsBuilder AddRabbitMqActivities(this ElsaOptionsBuilder options) { options.Services .AddSingleton <BusClientFactory>() .AddSingleton <IMessageReceiverClientFactory>(sp => sp.GetRequiredService <BusClientFactory>()) .AddSingleton <IMessageSenderClientFactory>(sp => sp.GetRequiredService <BusClientFactory>()) .AddSingleton <IRabbitMqQueueStarter, RabbitMqQueueStarter>() .AddSingleton <Scoped <IWorkflowLaunchpad> >() .AddSingleton <IRabbitMqTestQueueManager, RabbitMqTestQueueManager>() .AddNotificationHandlersFrom <ConfigureRabbitMqActivitiesForTestHandler>() .AddStartupTask <StartRabbitMqQueues>() .AddBookmarkProvider <QueueMessageReceivedBookmarkProvider>(); options.AddPubSubConsumer <RestartRabbitMqBusConsumer, WorkflowDefinitionPublished>("WorkflowDefinitionEvents"); options.AddPubSubConsumer <RestartRabbitMqBusConsumer, WorkflowDefinitionRetracted>("WorkflowDefinitionEvents"); options .AddActivity <RabbitMqMessageReceived>() .AddActivity <SendRabbitMqMessage>(); return(options); }
public static ElsaOptionsBuilder AddMqttActivities(this ElsaOptionsBuilder options) { options.Services .AddSingleton <BusClientFactory>() .AddSingleton <IMessageReceiverClientFactory>(sp => sp.GetRequiredService <BusClientFactory>()) .AddSingleton <IMessageSenderClientFactory>(sp => sp.GetRequiredService <BusClientFactory>()) .AddSingleton <IMqttTopicsStarter, MqttTopicsStarter>() .AddStartupTask <StartMqttTopics>() .AddBookmarkProvider <MessageReceivedBookmarkProvider>() .AddSingleton <IMqttTestClientManager, MqttTestClientManager>() .AddNotificationHandlersFrom <ConfigureMqttActivitiesForTestHandler>(); options.AddPubSubConsumer <RestartMqttTopicsConsumer, TriggerIndexingFinished>("WorkflowManagementEvents"); options.AddPubSubConsumer <RestartMqttTopicsConsumer, TriggersDeleted>("WorkflowManagementEvents"); options.AddPubSubConsumer <RestartMqttTopicsConsumer, BookmarkIndexingFinished>("WorkflowManagementEvents"); options.AddPubSubConsumer <RestartMqttTopicsConsumer, BookmarksDeleted>("WorkflowManagementEvents"); options .AddActivity <MqttMessageReceived>() .AddActivity <SendMqttMessage>(); return(options); }
public static ElsaOptionsBuilder AddEntityActivities(this ElsaOptionsBuilder options) { options.AddActivity <EntityChanged>(); options.Services.AddBookmarkProvider <EntityChangedWorkflowTriggerProvider>(); return(options); }
private static ElsaOptionsBuilder AddEmailActivitiesInternal(this ElsaOptionsBuilder services) => services.AddActivity <SendEmail>();
public static ElsaOptionsBuilder AddAbpActivities(this ElsaOptionsBuilder builder) { builder.AddActivity <AbpEventHandler>(); return(builder); }
public static ElsaOptionsBuilder AddUserTaskActivities(this ElsaOptionsBuilder services) { return(services.AddActivity <UserTask>()); }
private static ElsaOptionsBuilder AddRpaWebActivitiesInternal(this ElsaOptionsBuilder services) => services .AddActivity <OpenBrowser>() .AddActivity <CloseBrowser>() .AddActivity <NavigateToUrl>() .AddActivity <ClickElement>() .AddActivity <TypeText>() .AddActivity <GetText>() ;
private static ElsaOptionsBuilder AddHttpActivitiesInternal(this ElsaOptionsBuilder options) => options .AddActivity <HttpEndpoint>() .AddActivity <WriteHttpResponse>() .AddActivity <SendHttpRequest>() .AddActivity <Redirect>();
public static ElsaOptionsBuilder AddDropboxActivities(this ElsaOptionsBuilder services) => services.AddActivity <SaveToDropbox>();