コード例 #1
0
 public WorkflowsController(IWorkflowController workflowService, ISearchIndex searchService, IWorkflowRegistry registry, IPersistenceProvider workflowStore)
 {
     _workflowService = workflowService;
     _workflowStore   = workflowStore;
     _registry        = registry;
     _searchService   = searchService;
 }
コード例 #2
0
 public WorkflowLaunchpad(
     IWorkflowInstanceStore workflowInstanceStore,
     IWorkflowFactory workflowFactory,
     IBookmarkFinder bookmarkFinder,
     ITriggerFinder triggerFinder,
     IDistributedLockProvider distributedLockProvider,
     IWorkflowInstanceDispatcher workflowInstanceDispatcher,
     IWorkflowInstanceExecutor workflowInstanceExecutor,
     IWorkflowRunner workflowRunner,
     IWorkflowRegistry workflowRegistry,
     IGetsStartActivities getsStartActivities,
     ElsaOptions elsaOptions,
     ILogger <WorkflowLaunchpad> logger)
 {
     _workflowInstanceStore      = workflowInstanceStore;
     _bookmarkFinder             = bookmarkFinder;
     _triggerFinder              = triggerFinder;
     _distributedLockProvider    = distributedLockProvider;
     _workflowInstanceDispatcher = workflowInstanceDispatcher;
     _elsaOptions              = elsaOptions;
     _logger                   = logger;
     _getsStartActivities      = getsStartActivities;
     _workflowRegistry         = workflowRegistry;
     _workflowRunner           = workflowRunner;
     _workflowInstanceExecutor = workflowInstanceExecutor;
     _workflowFactory          = workflowFactory;
 }
コード例 #3
0
 public StartDocumentWorkflowsHandler(IWorkflowRegistry workflowRegistry, IWorkflowDefinitionDispatcher workflowDispatcher, ILogger <StartDocumentWorkflowsHandler> logger, IConfiguration configuration)
 {
     _workflowRegistry   = workflowRegistry;
     _workflowDispatcher = workflowDispatcher;
     _logger             = logger;
     _configuration      = configuration;
 }
コード例 #4
0
 public WorkflowLoader(IWorkflowRegistry registry, IScriptEngineHost scriptHost, IExpressionEvaluator expressionEvaluator, ICustomStepService stepService)
 {
     _registry            = registry;
     _scriptHost          = scriptHost;
     _expressionEvaluator = expressionEvaluator;
     _stepService         = stepService;
 }
コード例 #5
0
 public CachingWorkflowRegistry(IWorkflowRegistry workflowRegistry, IMemoryCache memoryCache, ICacheSignal cacheSignal, IWorkflowInstanceStore workflowInstanceStore)
 {
     _workflowRegistry      = workflowRegistry;
     _memoryCache           = memoryCache;
     _cacheSignal           = cacheSignal;
     _workflowInstanceStore = workflowInstanceStore;
 }
コード例 #6
0
 public WorkflowTriggerInterruptor(IWorkflowRunner workflowRunner, IWorkflowRegistry workflowRegistry, IWorkflowInstanceStore workflowInstanceStore, IBookmarkFinder bookmarkFinder)
 {
     _workflowRunner        = workflowRunner;
     _workflowRegistry      = workflowRegistry;
     _workflowInstanceStore = workflowInstanceStore;
     _bookmarkFinder        = bookmarkFinder;
 }
コード例 #7
0
 public WorkflowsController(IWorkflowHost workflowHost, IWorkflowRegistry registry, IPersistenceProvider workflowStore, ILoggerFactory loggerFactory)
 {
     _workflowHost  = workflowHost;
     _workflowStore = workflowStore;
     _registry      = registry;
     _logger        = loggerFactory.CreateLogger <WorkflowsController>();
 }
コード例 #8
0
        public WorkflowExecutorFixture()
        {
            //setup dependency injection
            IServiceCollection services = new ServiceCollection();

            services.AddLogging();

            //TODO: mock these dependencies to make true unit tests
            Options = new WorkflowOptions();
            services.AddSingleton(Options);
            services.AddTransient <IWorkflowBuilder, WorkflowBuilder>();
            services.AddTransient <IWorkflowRegistry, WorkflowRegistry>();
            services.AddTransient <IExecutionResultProcessor, ExecutionResultProcessor>();
            services.AddTransient <IExecutionPointerFactory, ExecutionPointerFactory>();
            services.AddTransient <IDateTimeProvider, DateTimeProvider>();

            Host = A.Fake <IWorkflowHost>();
            PersistenceProvider = A.Fake <IPersistenceProvider>();
            var serviceProvider = services.BuildServiceProvider();

            //config logging
            var loggerFactory = serviceProvider.GetService <ILoggerFactory>();

            loggerFactory.AddConsole(LogLevel.Debug);

            Registry        = serviceProvider.GetService <IWorkflowRegistry>();
            ResultProcesser = serviceProvider.GetService <IExecutionResultProcessor>();

            Subject = new WorkflowExecutor(Registry, serviceProvider, new DateTimeProvider(), ResultProcesser, Options, loggerFactory);
        }
コード例 #9
0
        public WorkflowExecutorFixture()
        {
            Host = A.Fake <IWorkflowHost>();
            PersistenceProvider   = A.Fake <IPersistenceProvider>();
            ServiceProvider       = A.Fake <IServiceProvider>();
            ScopeProvider         = A.Fake <IScopeProvider>();
            Registry              = A.Fake <IWorkflowRegistry>();
            ResultProcesser       = A.Fake <IExecutionResultProcessor>();
            EventHub              = A.Fake <ILifeCycleEventPublisher>();
            CancellationProcessor = A.Fake <ICancellationProcessor>();
            DateTimeProvider      = A.Fake <IDateTimeProvider>();

            Options = new WorkflowOptions(A.Fake <IServiceCollection>());

            var scope = A.Fake <IServiceScope>();

            A.CallTo(() => ScopeProvider.CreateScope(A <IStepExecutionContext> ._)).Returns(scope);
            A.CallTo(() => scope.ServiceProvider).Returns(ServiceProvider);

            A.CallTo(() => DateTimeProvider.Now).Returns(DateTime.Now);
            A.CallTo(() => DateTimeProvider.UtcNow).Returns(DateTime.UtcNow);

            //config logging
            var loggerFactory = new LoggerFactory();

            //loggerFactory.AddConsole(LogLevel.Debug);

            Subject = new WorkflowExecutor(Registry, ServiceProvider, ScopeProvider, DateTimeProvider, ResultProcesser, EventHub, CancellationProcessor, Options, loggerFactory);
        }
コード例 #10
0
 public WorkflowExecutor(IWorkflowRegistry registry, IServiceProvider serviceProvider, IDateTimeProvider datetimeProvider, ILoggerFactory loggerFactory)
 {
     _serviceProvider  = serviceProvider;
     _registry         = registry;
     _datetimeProvider = datetimeProvider;
     _logger           = loggerFactory.CreateLogger <WorkflowExecutor>();
 }
コード例 #11
0
        public async Task <ActionResult <string> > Start(
            [FromServices] IWorkflowInvoker wfInvoker,
            [FromServices] IWorkflowRegistry wfRegistry,
            [FromServices] IWorkflowDefinitionStore wfStore,
            string name,
            CancellationToken cancellationToken)
        {
            var correlationId = Guid.NewGuid().ToString();

            var definitions = await wfStore.ListAsync(VersionOptions.Published, cancellationToken);

            var wf = definitions.FirstOrDefault(d => d.Name.ToLower(CultureInfo.InvariantCulture) == name);

            if (wf == null)
            {
                return(NotFound());
            }

            var input = new Variables(new [] {
                new KeyValuePair <string, object>("withdrawalId", "33")
            });

            var context = await wfInvoker.StartAsync(wf, input : input, correlationId : correlationId, cancellationToken : cancellationToken);

            return(Ok($"Batched/{correlationId}"));
        }
コード例 #12
0
 public WorkflowExecutor(IWorkflowHost host, IWorkflowRegistry registry, IServiceProvider serviceProvider, ILoggerFactory loggerFactory)
 {
     _host            = host;
     _serviceProvider = serviceProvider;
     _registry        = registry;
     _logger          = loggerFactory.CreateLogger <WorkflowExecutor>();
 }
コード例 #13
0
        public WorkflowExecutorFixture()
        {
            Host = A.Fake <IWorkflowHost>();
            PersistenceProvider   = A.Fake <IPersistenceProvider>();
            ServiceProvider       = A.Fake <IServiceProvider>();
            ScopeProvider         = A.Fake <IScopeProvider>();
            Registry              = A.Fake <IWorkflowRegistry>();
            ResultProcesser       = A.Fake <IExecutionResultProcessor>();
            EventHub              = A.Fake <ILifeCycleEventPublisher>();
            CancellationProcessor = A.Fake <ICancellationProcessor>();
            DateTimeProvider      = A.Fake <IDateTimeProvider>();
            MiddlewareRunner      = A.Fake <IWorkflowMiddlewareRunner>();
            StepExecutor          = A.Fake <IStepExecutor>();

            Options = new WorkflowOptions(A.Fake <IServiceCollection>());

            var stepExecutionScope = A.Fake <IServiceScope>();

            A.CallTo(() => ScopeProvider.CreateScope(A <IStepExecutionContext> ._)).Returns(stepExecutionScope);
            A.CallTo(() => stepExecutionScope.ServiceProvider).Returns(ServiceProvider);

            var scope        = A.Fake <IServiceScope>();
            var scopeFactory = A.Fake <IServiceScopeFactory>();

            A.CallTo(() => ServiceProvider.GetService(typeof(IServiceScopeFactory))).Returns(scopeFactory);
            A.CallTo(() => scopeFactory.CreateScope()).Returns(scope);
            A.CallTo(() => scope.ServiceProvider).Returns(ServiceProvider);

            A.CallTo(() => DateTimeProvider.Now).Returns(DateTime.Now);
            A.CallTo(() => DateTimeProvider.UtcNow).Returns(DateTime.UtcNow);

            A
            .CallTo(() => ServiceProvider.GetService(typeof(IWorkflowMiddlewareRunner)))
            .Returns(MiddlewareRunner);

            A
            .CallTo(() => ServiceProvider.GetService(typeof(IStepExecutor)))
            .Returns(StepExecutor);

            A.CallTo(() => MiddlewareRunner
                     .RunPostMiddleware(A <WorkflowInstance> ._, A <WorkflowDefinition> ._))
            .Returns(Task.CompletedTask);

            A.CallTo(() => MiddlewareRunner
                     .RunExecuteMiddleware(A <WorkflowInstance> ._, A <WorkflowDefinition> ._))
            .Returns(Task.CompletedTask);

            A.CallTo(() => StepExecutor.ExecuteStep(A <IStepExecutionContext> ._, A <IStepBody> ._))
            .ReturnsLazily(call =>
                           call.Arguments[1].As <IStepBody>().RunAsync(
                               call.Arguments[0].As <IStepExecutionContext>()));

            //config logging
            var loggerFactory = new LoggerFactory();

            //loggerFactory.AddConsole(LogLevel.Debug);

            Subject = new WorkflowExecutor(Registry, ServiceProvider, ScopeProvider, DateTimeProvider, ResultProcesser, EventHub, CancellationProcessor, Options, loggerFactory);
        }
コード例 #14
0
 public StartController(IWorkflowRunner workflowInvoker, IWorkflowRegistry workflowRegistry, IWorkflowFactory workflowFactory, IWorkflowInstanceStore workflowInstanceStore, IWorkflowInstanceDispatcher workflowInstanceDispatcher)
 {
     this.workflowInvoker            = workflowInvoker;
     this.workflowRegistry           = workflowRegistry;
     this.workflowFactory            = workflowFactory;
     this.workflowInstanceStore      = workflowInstanceStore;
     this.workflowInstanceDispatcher = workflowInstanceDispatcher;
 }
コード例 #15
0
 public DashboardController(ILogger <DashboardController> logger, IWorkflowRegistry registry,
                            IPersistenceProvider workflowStore, IWorkflowHost workflowHost)
 {
     _workflowHost  = workflowHost;
     _workflowStore = workflowStore;
     _registry      = registry;
     _logger        = logger;
 }
コード例 #16
0
 public HangfireWorkflowDispatcher(IBackgroundJobClient jobClient, IWorkflowInstanceStore workflowInstanceStore, IWorkflowRegistry workflowRegistry, ElsaOptions elsaOptions, ILogger <HangfireWorkflowDispatcher> logger)
 {
     _jobClient              = jobClient;
     _workflowInstanceStore  = workflowInstanceStore;
     _workflowRegistry       = workflowRegistry;
     _workflowChannelOptions = elsaOptions.WorkflowChannelOptions;
     _logger = logger;
 }
コード例 #17
0
 public QueuingWorkflowDispatcher(ICommandSender commandSender, IWorkflowInstanceStore workflowInstanceStore, IWorkflowRegistry workflowRegistry, ElsaOptions elsaOptions, ILogger <QueuingWorkflowDispatcher> logger)
 {
     _commandSender          = commandSender;
     _workflowInstanceStore  = workflowInstanceStore;
     _workflowRegistry       = workflowRegistry;
     _workflowChannelOptions = elsaOptions.WorkflowChannelOptions;
     _logger = logger;
 }
コード例 #18
0
 public WorkflowController(IPersistenceProvider persistenceStore, IDistributedLockProvider lockProvider, IWorkflowRegistry registry, IQueueProvider queueProvider, ILoggerFactory loggerFactory)
 {
     _persistenceStore = persistenceStore;
     _lockProvider     = lockProvider;
     _registry         = registry;
     _queueProvider    = queueProvider;
     _logger           = loggerFactory.CreateLogger <WorkflowController>();
 }
コード例 #19
0
ファイル: Get.cs プロジェクト: jruckert/elsa-core
 public Get(IWorkflowInstanceStore workflowInstanceStore, IContentSerializer contentSerializer, IWorkflowRegistry workflowRegistry, ITenantAccessor tenantAccessor, IPublisher publisher)
 {
     _workflowInstanceStore = workflowInstanceStore;
     _contentSerializer     = contentSerializer;
     _workflowRegistry      = workflowRegistry;
     _tenantAccessor        = tenantAccessor;
     _publisher             = publisher;
 }
コード例 #20
0
ファイル: WorkflowResumer.cs プロジェクト: plusxp/elsa-core
 public WorkflowResumer(IWorkflowRegistry workflowRegistry, IBookmarkFinder bookmarkFinder, IWorkflowInstanceStore workflowInstanceStore, Func <IWorkflowBuilder> workflowBuilderFactory, IWorkflowRunner workflowRunner)
 {
     _workflowRegistry       = workflowRegistry;
     _bookmarkFinder         = bookmarkFinder;
     _workflowInstanceStore  = workflowInstanceStore;
     _workflowBuilderFactory = workflowBuilderFactory;
     _workflowRunner         = workflowRunner;
 }
コード例 #21
0
 public WorkflowExecutor(IWorkflowRegistry registry, IServiceProvider serviceProvider, IExecutionResultProcessor executionResultProcessor, WorkflowOptions options, ILoggerFactory loggerFactory)
 {
     _serviceProvider          = serviceProvider;
     _registry                 = registry;
     _options                  = options;
     _logger                   = loggerFactory.CreateLogger <WorkflowExecutor>();
     _executionResultProcessor = executionResultProcessor;
 }
コード例 #22
0
        private static void PassingDataSample(IWorkflowRegistry registry, IWorkflowRuntime runtime)
        {
            MyDataClass initialData = new MyDataClass();

            initialData.Value1 = 2;
            initialData.Value2 = 3;
            runtime.StartWorkflow("PassingDataWorkflow", 1, initialData);
            Console.ReadLine();
        }
コード例 #23
0
 public RegistryController(IWorkflowHost workflowHost, IWorkflowRegistry registry, IWorkflowController controller, IDefinitionLoader loader, IPersistenceProvider workflowStore, ILoggerFactory loggerFactory)
 {
     _workflowHost  = workflowHost;
     _workflowStore = workflowStore;
     _registry      = registry;
     _logger        = loggerFactory.CreateLogger <WorkflowController>();
     _controller    = controller;
     _loader        = loader;
 }
コード例 #24
0
 public InMemoryPersistenceProvider(IConfiguration configuration,
                                    // IMapper mapper,
                                    IWorkflowRegistry registry,
                                    ILogger <InMemoryPersistenceProvider> logger)
 {
     // _mapper = mapper;
     _registry = registry;
     _logger   = logger;
 }
コード例 #25
0
 public AppHostedService(ILogger <AppHostedService> logger,
                         IWorkflowController workflowController,
                         IWorkflowRegistry workflowRegistry,
                         IWorkflowHost workHost)
 {
     _logger             = logger;
     _workflowController = workflowController;
     _workflowRegistry   = workflowRegistry;
     _workHost           = workHost;
 }
コード例 #26
0
        private static void EventSample(IWorkflowRegistry registry, IWorkflowRuntime runtime)
        {
            runtime.StartWorkflow("EventSampleWorkflow", 1, new MyDataClass());

            Console.WriteLine("Enter value");
            string value = Console.ReadLine();

            runtime.PublishEvent("MyEvent", "0", value);
            Console.ReadLine();
        }
コード例 #27
0
 public WorkflowController(IPersistenceProvider persistenceStore, IDistributedLockProvider lockProvider, IWorkflowRegistry registry, IQueueProvider queueProvider, IExecutionPointerFactory pointerFactory, ILoggerFactory loggerFactory)
 {
     _persistenceStore = persistenceStore;
     _lockProvider     = lockProvider;
     _registry         = registry;
     _queueProvider    = queueProvider;
     _pointerFactory   = pointerFactory;
     _logger           = loggerFactory.CreateLogger <WorkflowController>();
     AbpSession        = NullAbpSession.Instance;
 }
コード例 #28
0
 public WorkflowExecutor(IWorkflowRegistry registry, IServiceProvider serviceProvider, IDateTimeProvider datetimeProvider, IExecutionResultProcessor executionResultProcessor, ILifeCycleEventPublisher publisher, WorkflowOptions options, ILoggerFactory loggerFactory)
 {
     _serviceProvider          = serviceProvider;
     _registry                 = registry;
     _datetimeProvider         = datetimeProvider;
     _publisher                = publisher;
     _options                  = options;
     _logger                   = loggerFactory.CreateLogger <WorkflowExecutor>();
     _executionResultProcessor = executionResultProcessor;
 }
コード例 #29
0
 public WorkflowExecutor(IWorkflowRegistry registry, IServiceProvider serviceProvider, IDateTimeProvider datetimeProvider, IExecutionResultProcessor executionResultProcessor, WorkflowOptions options, ILoggerFactory loggerFactory, IPersistenceProvider persistenceStore)
 {
     _serviceProvider          = serviceProvider;
     _registry                 = registry;
     _datetimeProvider         = datetimeProvider;
     _options                  = options;
     _logger                   = loggerFactory.CreateLogger <WorkflowExecutor>();
     _executionResultProcessor = executionResultProcessor;
     _persistenceStore         = persistenceStore;
 }
 public WorkflowController(IPersistenceProvider persistenceStore, IDistributedLockProvider lockProvider, IWorkflowRegistry registry, IQueueProvider queueProvider, IExecutionPointerFactory pointerFactory, ILifeCycleEventHub eventHub, ILoggerFactory loggerFactory)
 {
     _persistenceStore = persistenceStore;
     _lockProvider     = lockProvider;
     _registry         = registry;
     _queueProvider    = queueProvider;
     _pointerFactory   = pointerFactory;
     _eventHub         = eventHub;
     _logger           = loggerFactory.CreateLogger <WorkflowController>();
 }