using System.IO; using System.Threading.Tasks; using Elsa.ActivityResults; using Elsa.Attributes; using Elsa.Expressions; using Elsa.Services; using Elsa.Services.Models; // ReSharper disable once CheckNamespace namespace Elsa.Activities.Console { /// /// Writes a text string to the console. /// [Action( Category = "Console", Description = "Write text to standard out.", Outcomes = new[] { OutcomeNames.Done } )] public class WriteLine : Activity { public WriteLine() : this(System.Console.Out) { } public WriteLine(TextWriter output) { _output = output; } [ActivityInput(Hint = "The text to write.", SupportedSyntaxes = new[]{ SyntaxNames.JavaScript, SyntaxNames.Liquid })] public string? Text { get; set; } private readonly TextWriter _output; protected override async ValueTask OnExecuteAsync(ActivityExecutionContext context) { await _output.WriteLineAsync(Text); return Done(); } } }