public static bool Execute([NotNull] IProcessingContext context, [NotNull] IProcessingFeedback feedback, [NotNull] IEnumerable <IGdbProcess> processes, [CanBeNull] string actionName) { Assert.ArgumentNotNull(context, nameof(context)); Assert.ArgumentNotNull(feedback, nameof(feedback)); Assert.ArgumentNotNull(processes, nameof(processes)); IGdbTransaction transaction = context.GetTransaction(); IWorkspace workspace = context.GetWorkspace(); // TODO - Consider: transient processes: execute a list of ProcessDescriptors; // TODO - for each descriptor, instantiate and configure a GdbProcess. return(transaction.Execute( workspace, () => Execute(context, feedback, processes), actionName ?? GetActionName(processes))); }