internal async Task ExecuteStepAsync(Step step) { try { PreExecution(step); if (step.ActionAsync == null && step.Action != null) { await Task.Run(() => { step.Action(step); }); } else { await step.ActionAsync(step); } PostExecution(step); } catch (Exception ex) { stepExceptionHandler.HandleException(this, step, ex); } }