Additional test wotkflow scenarios

This commit is contained in:
Cameron Cowen 2021-09-08 00:55:48 +01:00
parent 85f3326c20
commit dded9bc884
7 changed files with 97 additions and 22 deletions

View file

@ -20,7 +20,10 @@ namespace Elsa.Samples.WatchDirectoryWorker
.AddElsa(options => options
.AddConsoleActivities()
.AddFileActivities()
.AddWorkflow<WatchDirectoryWorkflow>());
.AddWorkflow<WatchDirectoryCreatedWorkflow>()
.AddWorkflow<WatchDirectoryChangedWorkflow>()
.AddWorkflow<WatchDirectoryDatWorkflow>()
.AddWorkflow<WatchDirectoryDeletedWorkflow>());
});
}
}

View file

@ -0,0 +1,23 @@
using Elsa.Activities.Console;
using Elsa.Activities.File;
using Elsa.Activities.File.Models;
using Elsa.Builders;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Elsa.Samples.WatchDirectoryWorker.Workflows
{
public class WatchDirectoryChangedWorkflow : IWorkflow
{
private readonly string _systemRoot = Path.GetPathRoot(Environment.SystemDirectory);
public void Build(IWorkflowBuilder builder) => builder.WatchDirectory(setup => setup.WithPath(Path.Combine(_systemRoot, "Temp\\FileWatchers"))
.WithPattern("*.txt")
.WithChangeTypes(WatcherChangeTypes.Changed))
.WriteLine(setup => setup.WithText(context => $"{GetType().Name}-{context.GetInput<FileSystemEvent>().FullPath}-{context.GetInput<FileSystemEvent>().ChangeType}"));
}
}

View file

@ -0,0 +1,23 @@
using Elsa.Activities.Console;
using Elsa.Activities.File;
using Elsa.Activities.File.Models;
using Elsa.Builders;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Elsa.Samples.WatchDirectoryWorker.Workflows
{
public class WatchDirectoryCreatedWorkflow : IWorkflow
{
private readonly string _systemRoot = Path.GetPathRoot(Environment.SystemDirectory);
public void Build(IWorkflowBuilder builder) => builder.WatchDirectory(setup => setup.WithPath(Path.Combine(_systemRoot,"Temp\\FileWatchers"))
.WithPattern("*.txt")
.WithChangeTypes(WatcherChangeTypes.Created))
.WriteLine(setup => setup.WithText(context => $"{GetType().Name}-{context.GetInput<FileSystemEvent>().FullPath}-{context.GetInput<FileSystemEvent>().ChangeType}"));
}
}

View file

@ -0,0 +1,22 @@
using Elsa.Activities.Console;
using Elsa.Activities.File;
using Elsa.Activities.File.Models;
using Elsa.Builders;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Elsa.Samples.WatchDirectoryWorker.Workflows
{
public class WatchDirectoryDatWorkflow : IWorkflow
{
private readonly string _systemRoot = Path.GetPathRoot(Environment.SystemDirectory);
public void Build(IWorkflowBuilder builder) => builder.WatchDirectory(setup => setup.WithPath(Path.Combine(_systemRoot,"Temp\\FileWatchers"))
.WithPattern("*.dat"))
.WriteLine(setup => setup.WithText(context => $"{GetType().Name}-{context.GetInput<FileSystemEvent>().FullPath}-{context.GetInput<FileSystemEvent>().ChangeType}"));
}
}

View file

@ -0,0 +1,23 @@
using Elsa.Activities.Console;
using Elsa.Activities.File;
using Elsa.Activities.File.Models;
using Elsa.Builders;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Elsa.Samples.WatchDirectoryWorker.Workflows
{
public class WatchDirectoryDeletedWorkflow : IWorkflow
{
private readonly string _systemRoot = Path.GetPathRoot(Environment.SystemDirectory);
public void Build(IWorkflowBuilder builder) => builder.WatchDirectory(setup => setup.WithPath(Path.Combine(_systemRoot,"Temp\\FileWatchers"))
.WithPattern("*.txt")
.WithChangeTypes(WatcherChangeTypes.Deleted))
.WriteLine(setup => setup.WithText(context => $"{GetType().Name}-{context.GetInput<FileSystemEvent>().FullPath}-{context.GetInput<FileSystemEvent>().ChangeType}"));
}
}

View file

@ -1,19 +0,0 @@
using Elsa.Activities.Console;
using Elsa.Activities.File;
using Elsa.Activities.File.Models;
using Elsa.Builders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Elsa.Samples.WatchDirectoryWorker.Workflows
{
public class WatchDirectoryWorkflow : IWorkflow
{
public void Build(IWorkflowBuilder builder) => builder.WatchDirectory(setup => setup.WithPath("C:\\Temp")
.WithPattern("*.txt"))
.WriteLine(setup => setup.WithText(async context => context.GetInput<FileSystemEvent>().FullPath));
}
}

View file

@ -1,8 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Information",
"Default": "Warning",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
},
"Console": {