Added fileexists activity

This commit is contained in:
Cameron Cowen 2021-05-04 21:05:24 +01:00
parent 6c595841ad
commit c66667ea9e
4 changed files with 86 additions and 0 deletions

View file

@ -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);
}
}
}

View file

@ -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<ISetupActivity<FileExists>> setup, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.Then(setup, null, lineNumber, sourceFile);
public static IActivityBuilder FileExists(this IActivityBuilder builder, Func<ActivityExecutionContext, string> 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<ActivityExecutionContext, ValueTask<string>> 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<string> 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<ValueTask<string>> 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);
}
}

View file

@ -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<FileExists> WithPath(this ISetupActivity<FileExists> setup, Func<ActivityExecutionContext, ValueTask<string>> path) => setup.Set(x => x.Path, path);
public static ISetupActivity<FileExists> WithPath(this ISetupActivity<FileExists> setup, Func<ActivityExecutionContext, string> path) => setup.Set(x => x.Path, path);
public static ISetupActivity<FileExists> WithPath(this ISetupActivity<FileExists> setup, Func<ValueTask<string>> path) => setup.Set(x => x.Path, path);
public static ISetupActivity<FileExists> WithPath(this ISetupActivity<FileExists> setup, Func<string> path) => setup.Set(x => x.Path, path);
public static ISetupActivity<FileExists> WithPath(this ISetupActivity<FileExists> setup, string path) => setup.Set(x => x.Path, path);
}
}

View file

@ -17,6 +17,7 @@ namespace Microsoft.Extensions.DependencyInjection
public static ElsaOptionsBuilder AddFileActivities(this ElsaOptionsBuilder builder)
{
builder.AddActivity<DeleteFile>();
builder.AddActivity<FileExists>();
builder.AddActivity<OutFile>();
builder.AddActivity<TempFile>();