using Elsa.Workflows;
namespace Elsa.Testing.Shared;
///
/// Provides extension methods for to enhance its functionality.
///
public static class ActivityExecutionContextExtensions
{
///
/// Determines whether the specified activity is scheduled in the workflow execution context.
///
/// The activity execution context instance used for checking the scheduled activity.
/// The activity to check for scheduling.
/// True if the specified activity is scheduled; otherwise, false.
public static bool HasScheduledActivity(this ActivityExecutionContext activityExecutionContext, IActivity activity)
{
return activityExecutionContext.WorkflowExecutionContext.Scheduler.Find(x => x.Activity == activity) != null;
}
public static IEnumerable GetOutcomes(this ActivityExecutionContext activityExecutionContext)
{
if (activityExecutionContext.JournalData.TryGetValue("Outcomes", out var outcomesObj) && outcomesObj is string[] outcomes)
return outcomes;
return [];
}
public static bool HasOutcome(this ActivityExecutionContext activityExecutionContext, string outcome)
{
return activityExecutionContext.GetOutcomes().Contains(outcome);
}
}