From b698a579bd14ce8688ccd0d5f7571af73a04ab4f Mon Sep 17 00:00:00 2001 From: noxe Date: Fri, 26 Nov 2021 15:27:54 +0100 Subject: [PATCH] Filesystemwatcher - fixes async StartWorkflow (#2525) * do not create a new Scope - reuse workflowExecutionContext's scope * Upgrade Rebus.ServiceProvider to 7.0 * fixes FileSystemWatchersStarter * remove duplicated async/await Co-authored-by: Martin --- .../Services/FileSystemWatchersStarter.cs | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/activities/Elsa.Activities.File/Services/FileSystemWatchersStarter.cs b/src/activities/Elsa.Activities.File/Services/FileSystemWatchersStarter.cs index ed75eebc4..a502a2e4f 100644 --- a/src/activities/Elsa.Activities.File/Services/FileSystemWatchersStarter.cs +++ b/src/activities/Elsa.Activities.File/Services/FileSystemWatchersStarter.cs @@ -1,3 +1,10 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading; +using System.Threading.Tasks; using AutoMapper; using Elsa.Activities.File.Bookmarks; using Elsa.Activities.File.Models; @@ -6,13 +13,6 @@ using Elsa.Services; using Elsa.Services.Models; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Runtime.CompilerServices; -using System.Threading; -using System.Threading.Tasks; namespace Elsa.Activities.File.Services { @@ -46,12 +46,12 @@ namespace Elsa.Activities.File.Services { if (_watchers.Any()) { - foreach (var watcher in _watchers) + foreach (var watcher in _watchers) watcher.Dispose(); - + _watchers.Clear(); } - + var activities = GetActivityInstancesAsync(cancellationToken); await foreach (var a in activities.WithCancellation(cancellationToken)) { @@ -127,9 +127,9 @@ namespace Elsa.Activities.File.Services { _logger.LogDebug("Checking ${Path} exists", path); - if (Directory.Exists(path)) + if (Directory.Exists(path)) return; - + _logger.LogInformation("Creating directory {Path}", path); Directory.CreateDirectory(path); } @@ -160,7 +160,7 @@ namespace Elsa.Activities.File.Services StartWorkflow((FileSystemWatcher)sender, e); } - private void StartWorkflow(FileSystemWatcher watcher, FileSystemEventArgs e) + private async void StartWorkflow(FileSystemWatcher watcher, FileSystemEventArgs e) { var changeTypes = e.ChangeType; var notifyFilter = watcher.NotifyFilter; @@ -170,7 +170,7 @@ namespace Elsa.Activities.File.Services var model = _mapper.Map(e); var bookmark = new FileSystemEventBookmark(path, pattern, changeTypes, notifyFilter); var launchContext = new WorkflowsQuery(nameof(WatchDirectory), bookmark); - _workflowLaunchpad.UseService(s => s.CollectAndDispatchWorkflowsAsync(launchContext, new WorkflowInput(model))); + await _workflowLaunchpad.UseServiceAsync(s => s.CollectAndDispatchWorkflowsAsync(launchContext, new WorkflowInput(model))); } #endregion }