diff --git a/Elsa.sln b/Elsa.sln
index f12ececaf..9e9efc6db 100644
--- a/Elsa.sln
+++ b/Elsa.sln
@@ -336,6 +336,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElsaDashboard.Samples.Blazo
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Samples.HttpEndpointSecurity", "src\samples\aspnet\Elsa.Samples.HttpEndpointSecurity\Elsa.Samples.HttpEndpointSecurity.csproj", "{82B115DA-E3D0-49D7-AD08-DE9387656756}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Samples.WatchDirectoryWorker", "src\samples\worker\Elsa.Samples.WatchDirectoryWorker\Elsa.Samples.WatchDirectoryWorker.csproj", "{8EC3CF51-EBC1-4B45-881E-4B1B8190D579}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -786,6 +788,10 @@ Global
{82B115DA-E3D0-49D7-AD08-DE9387656756}.Debug|Any CPU.Build.0 = Debug|Any CPU
{82B115DA-E3D0-49D7-AD08-DE9387656756}.Release|Any CPU.ActiveCfg = Release|Any CPU
{82B115DA-E3D0-49D7-AD08-DE9387656756}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8EC3CF51-EBC1-4B45-881E-4B1B8190D579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8EC3CF51-EBC1-4B45-881E-4B1B8190D579}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8EC3CF51-EBC1-4B45-881E-4B1B8190D579}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8EC3CF51-EBC1-4B45-881E-4B1B8190D579}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -934,6 +940,7 @@ Global
{DCB3C4DD-2B7D-44E9-A366-F36F4ABFF488} = {D86B94DC-A53C-4A67-A820-828DD359C49B}
{9A4B1C48-16FB-4A65-AE98-5CDE7BCB506C} = {D86B94DC-A53C-4A67-A820-828DD359C49B}
{82B115DA-E3D0-49D7-AD08-DE9387656756} = {22E75696-6FE9-436A-9097-EE21C603F818}
+ {8EC3CF51-EBC1-4B45-881E-4B1B8190D579} = {E42743A0-FBDD-4150-9D53-6000496D9B87}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8B0975FD-7050-48B0-88C5-48C33378E158}
diff --git a/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Elsa.Samples.WatchDirectoryWorker.csproj b/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Elsa.Samples.WatchDirectoryWorker.csproj
new file mode 100644
index 000000000..44621cbd8
--- /dev/null
+++ b/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Elsa.Samples.WatchDirectoryWorker.csproj
@@ -0,0 +1,17 @@
+
+
+
+ Exe
+ net5.0
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Program.cs b/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Program.cs
new file mode 100644
index 000000000..9c7cbf63b
--- /dev/null
+++ b/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Program.cs
@@ -0,0 +1,25 @@
+using Elsa.Samples.WatchDirectoryWorker.Workflows;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using System;
+
+namespace Elsa.Samples.WatchDirectoryWorker
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ CreateHostBuilder(args).Build().Run();
+ }
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services
+ .AddElsa(options => options
+ .AddFileActivities()
+ .AddWorkflow());
+ });
+ }
+}
diff --git a/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Workflows/WatchDirectoryWorkflow.cs b/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Workflows/WatchDirectoryWorkflow.cs
new file mode 100644
index 000000000..85bec305b
--- /dev/null
+++ b/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Workflows/WatchDirectoryWorkflow.cs
@@ -0,0 +1,16 @@
+using Elsa.Activities.File;
+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"));
+ }
+}