using System; using System.Threading.Tasks; using MW.WorkFlow; using MainShell.Common; namespace MainShell.Process { public class SubstrateLoadActivity : ActivityAbstractBase { public SubstrateLoadActivity(string name) : base(name) { } protected override async Task OnExecuteAsync(WorkflowContext context, ActivityControl activityControl) { for (var i = 0; i < 10; i++) { activityControl.ThrowIfCancellationRequested(); await activityControl.CheckPauseAsync(); await Task.Delay(100, activityControl.CancellationToken); } context.SetData(WorkflowContextKeys.SubstrateProcessState, SubstrateLifecycleState.Loaded); return ActivityResult.Success; } protected override void PrepareExecute(WorkflowContext context, ActivityControl activityControl) { // Custom preparation logic before execution } protected override void AfterExecute(WorkflowContext context, ActivityControl activityControl) { // Custom cleanup logic after execution } } }