diff --git a/src/activities/Elsa.Activities.File/Activities/DeleteFile/DeleteFile.cs b/src/activities/Elsa.Activities.File/Activities/DeleteFile/DeleteFile.cs new file mode 100644 index 000000000..09926274c --- /dev/null +++ b/src/activities/Elsa.Activities.File/Activities/DeleteFile/DeleteFile.cs @@ -0,0 +1,26 @@ +using Elsa.ActivityResults; +using Elsa.Attributes; +using Elsa.Services; +using Elsa.Services.Models; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace Elsa.Activities.File +{ + [Action(Category = "File", + Description = "Deletes file at specified location", + Outcomes = new[] { OutcomeNames.Done })] + public class DeleteFile : Activity + { + [ActivityProperty(Hint = "Path of the file to delete.")] + public string Path { get; set; } + + protected override IActivityExecutionResult OnExecute(ActivityExecutionContext context) + { + System.IO.File.Delete(Path); + return Done(); + } + } +} diff --git a/src/activities/Elsa.Activities.File/Activities/DeleteFile/DeleteFileBuilderExtensions.cs b/src/activities/Elsa.Activities.File/Activities/DeleteFile/DeleteFileBuilderExtensions.cs new file mode 100644 index 000000000..9b0f1d70b --- /dev/null +++ b/src/activities/Elsa.Activities.File/Activities/DeleteFile/DeleteFileBuilderExtensions.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 DeleteFileBuilderExtensions + { + public static IActivityBuilder DeleteFile(this IActivityBuilder builder, Action> setup, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.Then(setup, null, lineNumber, sourceFile); + + public static IActivityBuilder DeleteFile(this IActivityBuilder builder, Func path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => + builder.DeleteFile(activity => activity + .Set(x => x.Path, path), + lineNumber, + sourceFile); + + public static IActivityBuilder DeleteFile(this IActivityBuilder builder, Func> path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => + builder.DeleteFile(activity => activity + .Set(x => x.Path, path), + lineNumber, + sourceFile); + + public static IActivityBuilder DeleteFile(this IActivityBuilder builder, Func path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => + builder.DeleteFile(activity => activity + .Set(x => x.Path, path), + lineNumber, + sourceFile); + + public static IActivityBuilder DeleteFile(this IActivityBuilder builder, Func> path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => + builder.DeleteFile(activity => activity + .Set(x => x.Path, path), + lineNumber, + sourceFile); + + public static IActivityBuilder DeleteFile(this IActivityBuilder builder, string path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => + builder.DeleteFile(activity => activity + .Set(x => x.Path, path), + lineNumber, + sourceFile); + } +} diff --git a/src/activities/Elsa.Activities.File/Activities/DeleteFile/DeleteFileExtensions.cs b/src/activities/Elsa.Activities.File/Activities/DeleteFile/DeleteFileExtensions.cs new file mode 100644 index 000000000..6f203c37d --- /dev/null +++ b/src/activities/Elsa.Activities.File/Activities/DeleteFile/DeleteFileExtensions.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 DeleteFileExtensions + { + 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); + } +}