protected override void ExecuteBlock(ExecutionContext context) { BeforeLoop(context); while (Loop(context)) { var loopBlock = context.NewBlock(this); if (CanExecute(loopBlock)) base.ExecuteBlock(loopBlock); AfterLoop(context); } }