Added initial readfile activity
This commit is contained in:
parent
bb535fed93
commit
b3efb27722
|
|
@ -0,0 +1,28 @@
|
|||
using Elsa.ActivityResults;
|
||||
using Elsa.Attributes;
|
||||
using Elsa.Design;
|
||||
using Elsa.Expressions;
|
||||
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 = "Output input value to specified location",
|
||||
Outcomes = new[] { OutcomeNames.Done })]
|
||||
public class ReadFile : Activity
|
||||
{
|
||||
[ActivityProperty(Hint = "Path to read content from.", UIHint = ActivityPropertyUIHints.SingleLine, SupportedSyntaxes = new[] { SyntaxNames.JavaScript, SyntaxNames.Liquid })]
|
||||
public string Path { get; set; }
|
||||
|
||||
public async override ValueTask<IActivityExecutionResult> ExecuteAsync(ActivityExecutionContext context)
|
||||
{
|
||||
var content = System.IO.File.ReadAllTextAsync(Path);
|
||||
return Done(content);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
using Elsa.Builders;
|
||||
using Elsa.Services.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Elsa.Activities.File
|
||||
{
|
||||
public static class ReadFileBuilderExtensions
|
||||
{
|
||||
public static IActivityBuilder ReadFile(this IBuilder builder, Action<ISetupActivity<OutFile>> setup, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.Then(setup, null, lineNumber, sourceFile);
|
||||
|
||||
public static IActivityBuilder ReadFile(this IBuilder builder, Func<ActivityExecutionContext, string> path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) =>
|
||||
builder.OutFile(activity => activity
|
||||
.Set(x => x.Path, path),
|
||||
lineNumber,
|
||||
sourceFile);
|
||||
|
||||
public static IActivityBuilder ReadFile(this IBuilder builder, Func<ActivityExecutionContext, ValueTask<string>> path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) =>
|
||||
builder.OutFile(activity => activity
|
||||
.Set(x => x.Path, path),
|
||||
lineNumber,
|
||||
sourceFile);
|
||||
|
||||
public static IActivityBuilder ReadFile(this IBuilder builder, Func<string> path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) =>
|
||||
builder.OutFile(activity => activity
|
||||
.Set(x => x.Path, path),
|
||||
lineNumber,
|
||||
sourceFile);
|
||||
|
||||
public static IActivityBuilder ReadFile(this IBuilder builder, Func<ValueTask<string>> path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) =>
|
||||
builder.OutFile(activity => activity
|
||||
.Set(x => x.Path, path),
|
||||
lineNumber,
|
||||
sourceFile);
|
||||
|
||||
public static IActivityBuilder ReadFile(this IBuilder builder, string path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) =>
|
||||
builder.OutFile(activity => activity
|
||||
.Set(x => x.Path, path),
|
||||
lineNumber,
|
||||
sourceFile);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
using Elsa.Builders;
|
||||
using Elsa.Services.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Elsa.Activities.File
|
||||
{
|
||||
public static class ReadFileExtensions
|
||||
{
|
||||
public static ISetupActivity<ReadFile> WithPath(this ISetupActivity<ReadFile> setup, Func<ActivityExecutionContext, ValueTask<string>> path) => setup.Set(x => x.Path, path);
|
||||
public static ISetupActivity<ReadFile> WithPath(this ISetupActivity<ReadFile> setup, Func<ActivityExecutionContext, string> path) => setup.Set(x => x.Path, path);
|
||||
public static ISetupActivity<ReadFile> WithPath(this ISetupActivity<ReadFile> setup, Func<ValueTask<string>> path) => setup.Set(x => x.Path, path);
|
||||
public static ISetupActivity<ReadFile> WithPath(this ISetupActivity<ReadFile> setup, Func<string> path) => setup.Set(x => x.Path, path);
|
||||
public static ISetupActivity<ReadFile> WithPath(this ISetupActivity<ReadFile> setup, string path) => setup.Set(x => x.Path, path);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
using Elsa;
|
||||
using Elsa.Activities.File;
|
||||
using Elsa.Activities.File.Options;
|
||||
using Elsa.Activities.File.Services;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
|
@ -15,16 +16,12 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
return services;
|
||||
}
|
||||
|
||||
public static ElsaOptionsBuilder AddFileActivities(this ElsaOptionsBuilder builder, Action<FileWatcherOptions>? configureOptions = null)
|
||||
{
|
||||
builder.Services.AddFileServices(configureOptions);
|
||||
builder.AddActivity<DeleteFile>();
|
||||
builder.AddActivity<FileExists>();
|
||||
builder.AddActivity<OutFile>();
|
||||
builder.AddActivity<TempFile>();
|
||||
|
||||
return builder;
|
||||
}
|
||||
public static ElsaOptionsBuilder AddFileActivities(this ElsaOptionsBuilder builder, Action<FileWatcherOptions>? configureOptions = null) => builder
|
||||
.AddActivity<DeleteFile>()
|
||||
.AddActivity<FileExists>()
|
||||
.AddActivity<OutFile>()
|
||||
.AddActivity<ReadFile>()
|
||||
.AddActivity<TempFile>();
|
||||
|
||||
public static IServiceCollection AddFileServices(this IServiceCollection services, Action<FileWatcherOptions>? configureOptions = null)
|
||||
{
|
||||
|
|
@ -32,6 +29,7 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
{
|
||||
services.Configure(configureOptions);
|
||||
}
|
||||
services.AddHostedService<FileWatcherService>();
|
||||
|
||||
return services;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue