diff --git a/src/activities/Elsa.Activities.File/Activities/FileExists/FileExists.cs b/src/activities/Elsa.Activities.File/Activities/FileExists/FileExists.cs new file mode 100644 index 000000000..969610473 --- /dev/null +++ b/src/activities/Elsa.Activities.File/Activities/FileExists/FileExists.cs @@ -0,0 +1,22 @@ +using Elsa.ActivityResults; +using Elsa.Attributes; +using Elsa.Services; +using Elsa.Services.Models; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Elsa.Activities.File +{ + public class FileExists : Activity + { + [ActivityProperty(Hint = "Path of the file to delete.")] + public string Path { get; set; } + + protected override IActivityExecutionResult OnExecute(ActivityExecutionContext context) + { + var exists = System.IO.File.Exists(Path); + return Done(exists); + } + } +} diff --git a/src/activities/Elsa.Activities.File/Activities/FileExists/FileExistsBuilderExtensions.cs b/src/activities/Elsa.Activities.File/Activities/FileExists/FileExistsBuilderExtensions.cs new file mode 100644 index 000000000..1eb76956f --- /dev/null +++ b/src/activities/Elsa.Activities.File/Activities/FileExists/FileExistsBuilderExtensions.cs @@ -0,0 +1,45 @@ +using Elsa.Builders; +using Elsa.Services.Models; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace Elsa.Activities.File +{ + public static class FileExistsBuilderExtensions + { + public static IActivityBuilder FileExists(this IActivityBuilder builder, Action> setup, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.Then(setup, null, lineNumber, sourceFile); + + public static IActivityBuilder FileExists(this IActivityBuilder builder, Func path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => + builder.FileExists(activity => activity + .Set(x => x.Path, path), + lineNumber, + sourceFile); + + public static IActivityBuilder FileExists(this IActivityBuilder builder, Func> path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => + builder.FileExists(activity => activity + .Set(x => x.Path, path), + lineNumber, + sourceFile); + + public static IActivityBuilder FileExists(this IActivityBuilder builder, Func path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => + builder.FileExists(activity => activity + .Set(x => x.Path, path), + lineNumber, + sourceFile); + + public static IActivityBuilder FileExists(this IActivityBuilder builder, Func> path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => + builder.FileExists(activity => activity + .Set(x => x.Path, path), + lineNumber, + sourceFile); + + public static IActivityBuilder FileExists(this IActivityBuilder builder, string path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => + builder.FileExists(activity => activity + .Set(x => x.Path, path), + lineNumber, + sourceFile); + } +} diff --git a/src/activities/Elsa.Activities.File/Activities/FileExists/FileExistsExtensions.cs b/src/activities/Elsa.Activities.File/Activities/FileExists/FileExistsExtensions.cs new file mode 100644 index 000000000..a852850a7 --- /dev/null +++ b/src/activities/Elsa.Activities.File/Activities/FileExists/FileExistsExtensions.cs @@ -0,0 +1,18 @@ +using Elsa.Builders; +using Elsa.Services.Models; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace Elsa.Activities.File +{ + public static class FileExistsExtensions + { + public static ISetupActivity WithPath(this ISetupActivity setup, Func> path) => setup.Set(x => x.Path, path); + public static ISetupActivity WithPath(this ISetupActivity setup, Func path) => setup.Set(x => x.Path, path); + public static ISetupActivity WithPath(this ISetupActivity setup, Func> path) => setup.Set(x => x.Path, path); + public static ISetupActivity WithPath(this ISetupActivity setup, Func path) => setup.Set(x => x.Path, path); + public static ISetupActivity WithPath(this ISetupActivity setup, string path) => setup.Set(x => x.Path, path); + } +} diff --git a/src/activities/Elsa.Activities.File/Extensions/ServiceCollectionExtensions.cs b/src/activities/Elsa.Activities.File/Extensions/ServiceCollectionExtensions.cs index cc810d855..5e2f05f1b 100644 --- a/src/activities/Elsa.Activities.File/Extensions/ServiceCollectionExtensions.cs +++ b/src/activities/Elsa.Activities.File/Extensions/ServiceCollectionExtensions.cs @@ -17,6 +17,7 @@ namespace Microsoft.Extensions.DependencyInjection public static ElsaOptionsBuilder AddFileActivities(this ElsaOptionsBuilder builder) { builder.AddActivity(); + builder.AddActivity(); builder.AddActivity(); builder.AddActivity();