/// <summary> /// Performs the currently built action. /// </summary> public async Task Perform(CancellationToken cancellationToken = default(CancellationToken)) { IActionExecutor actionExecutor = this.driver as IActionExecutor; if (await actionExecutor.IsActionExecutor(cancellationToken).ConfigureAwait(false)) { await actionExecutor.PerformActions(this.actionBuilder.ToActionSequenceList()).ConfigureAwait(false); } else { await action.Perform().ConfigureAwait(false); } }