Added activity output properties

This commit is contained in:
Cameron Cowen 2021-06-17 10:16:20 +01:00
parent 3e45c4c999
commit ecafed4b2f
4 changed files with 21 additions and 7 deletions

View file

@ -31,6 +31,9 @@ namespace Elsa.Activities.File
[ActivityInput(Hint = "Return files from sub directories", Label = "Sub Directories")]
public bool SubDirectories { get; set; } = false;
[ActivityOutput(Hint = "List of files.")]
public IEnumerable<string> Files { get; set; }
protected override IActivityExecutionResult OnExecute(ActivityExecutionContext context)
{
if (string.IsNullOrWhiteSpace(Pattern))
@ -42,7 +45,8 @@ namespace Elsa.Activities.File
MatchCasing = MatchCasing,
RecurseSubdirectories = SubDirectories
};
return Done(Directory.EnumerateFiles(Path, Pattern, options));
Files = Directory.EnumerateFiles(Path, Pattern, options);
return Done();
}
}
}

View file

@ -19,10 +19,13 @@ namespace Elsa.Activities.File
[ActivityInput(Hint = "Path to read content from.", UIHint = ActivityInputUIHints.SingleLine, SupportedSyntaxes = new[] { SyntaxNames.JavaScript, SyntaxNames.Liquid })]
public string Path { get; set; }
[ActivityOutput(Hint = "Bytes of the file read.")]
public byte[] Bytes { get; set; }
public async override ValueTask<IActivityExecutionResult> ExecuteAsync(ActivityExecutionContext context)
{
var data = await System.IO.File.ReadAllBytesAsync(Path);
return Done(data);
var Bytes = await System.IO.File.ReadAllBytesAsync(Path);
return Done();
}
}
}

View file

@ -13,9 +13,13 @@ namespace Elsa.Activities.File
Outcomes = new[] { OutcomeNames.Done })]
public class TempFile : Activity
{
[ActivityOutput(Hint = "Path of the created temporary file.")]
public string Path { get; set; }
protected override IActivityExecutionResult OnExecute()
{
return Done(Path.GetTempFileName());
Path = System.IO.Path.GetTempFileName();
return Done();
}
}
}

View file

@ -21,11 +21,14 @@ namespace Elsa.Samples.ReadLineToFile
.WithName("TempFile")
.OutFile(setup =>
{
setup.WithBytes(context => System.Text.Encoding.UTF8.GetBytes(context.GetOutputFrom<string>("ReadLine")));
setup.WithPath(context => context.GetOutputFrom<string>("TempFile"));
setup.WithBytes(async context => Encoding.UTF8.GetBytes(await context.GetNamedActivityPropertyAsync<ReadLine, string>("ReadLine", x => x.Output)));
setup.WithPath(async context => await context.GetNamedActivityPropertyAsync<TempFile, string>("TempFile", x => x.Path));
setup.WithMode(CopyMode.Overwrite);
})
.DeleteFile(setup => setup.WithPath(context => context.GetOutputFrom<string>("TempFile")));
.WriteLine(setup => setup.WithText(async context => await context.GetNamedActivityPropertyAsync<TempFile, string>("TempFile", x => x.Path)))
.WriteLine("Press any key to continue")
.ReadLine()
.DeleteFile(setup => setup.WithPath(async context => await context.GetNamedActivityPropertyAsync<TempFile, string>("TempFile", x => x.Path)));
}
}
}