public static void CancelInstance <TKey, TProcessInstanceStore, TProcessInstance, TFlowNode>(this ProcessInstanceManager <TKey, TProcessInstanceStore, TProcessInstance, TFlowNode> manager, TKey processInstanceId, string reason)
     where TKey : IEquatable <TKey>
     where TProcessInstanceStore : class, IProcessInstanceStore <TKey, TProcessInstance, TFlowNode>
     where TProcessInstance : class, IProcessInstance <TKey>, new()
     where TFlowNode : class, IFlowNode <TKey>
 {
     AsyncHelper.RunSync(() => manager.CancelInstanceAsync(processInstanceId, reason));
 }
 public static TProcessInstance SuspendInstance <TKey, TProcessInstanceStore, TProcessInstance, TFlowNode>(this ProcessInstanceManager <TKey, TProcessInstanceStore, TProcessInstance, TFlowNode> manager, TKey processInstanceId)
     where TKey : IEquatable <TKey>
     where TProcessInstanceStore : class, IProcessInstanceStore <TKey, TProcessInstance, TFlowNode>
     where TProcessInstance : class, IProcessInstance <TKey>, new()
     where TFlowNode : class, IFlowNode <TKey>
 {
     return(AsyncHelper.RunSync(() => manager.SuspendInstanceAsync(processInstanceId)));
 }
 public static TProcessInstance[] GetActiveProcessInstance <TKey, TProcessInstanceStore, TProcessInstance, TFlowNode>(this ProcessInstanceManager <TKey, TProcessInstanceStore, TProcessInstance, TFlowNode> manager)
     where TKey : IEquatable <TKey>
     where TProcessInstanceStore : class, IProcessInstanceStore <TKey, TProcessInstance, TFlowNode>
     where TProcessInstance : class, IProcessInstance <TKey>, new()
     where TFlowNode : class, IFlowNode <TKey>
 {
     return(AsyncHelper.RunSync(() => manager.GetActiveByProcessNameAsync()));
 }
 public static TProcessInstance StartProcessInstance <TKey, TProcessInstanceStore, TProcessInstance, TFlowNode>(this ProcessInstanceManager <TKey, TProcessInstanceStore, TProcessInstance, TFlowNode> manager, TKey processDefinitionId, string businessKey)
     where TKey : IEquatable <TKey>
     where TProcessInstanceStore : class, IProcessInstanceStore <TKey, TProcessInstance, TFlowNode>
     where TProcessInstance : class, IProcessInstance <TKey>, new()
     where TFlowNode : class, IFlowNode <TKey>
 {
     return(AsyncHelper.RunSync(() => manager.StartProcessInstanceAsync(processDefinitionId, businessKey)));
 }