using Elsa.Extensions; using Elsa.Workflows; using Elsa.Workflows.Attributes; using JetBrains.Annotations; namespace Elsa.Server.Web.ActivityHosts; /// /// A sample activity host that represents a penguin. /// Each of its public methods is an activity that can be executed. /// Method arguments are interpreted as input values, except for ActivityExecutionContext and CancellationToken. /// /// [UsedImplicitly] public class Penguin(ILogger logger) { [Activity(Description = "Wag the penguin")] public void Wag() { logger.LogInformation("The penguin is wagging!"); } public void Jump() { logger.LogInformation("The penguin is jumping!"); } public void Swim() { logger.LogInformation("The penguin is swimming!"); } public void Eat(string food) { logger.LogInformation($"The penguin is eating {food}!"); } public string Sleep(ActivityExecutionContext context) { logger.LogInformation("The penguin is sleeping!"); var bookmark = context.CreateBookmark(Wake); return context.GenerateBookmarkTriggerToken(bookmark.Id); } private ValueTask Wake(ActivityExecutionContext context) { logger.LogInformation("The penguin woke up!"); return ValueTask.CompletedTask; } }