public virtual Batch updateSuspensionStateAsync(ProcessEngine engine) { int @params = parameterCount(processInstanceIds, processInstanceQuery, historicProcessInstanceQuery); if (@params == 0) { string message = "Either processInstanceIds, processInstanceQuery or historicProcessInstanceQuery should be set to update the suspension state."; throw new InvalidRequestException(Status.BAD_REQUEST, message); } UpdateProcessInstancesSuspensionStateBuilder updateSuspensionStateBuilder = createUpdateSuspensionStateGroupBuilder(engine); if (Suspended) { return(updateSuspensionStateBuilder.suspendAsync()); } else { return(updateSuspensionStateBuilder.activateAsync()); } }
protected internal virtual UpdateProcessInstancesSuspensionStateBuilder createUpdateSuspensionStateGroupBuilder(ProcessEngine engine) { UpdateProcessInstanceSuspensionStateSelectBuilder selectBuilder = engine.RuntimeService.updateProcessInstanceSuspensionState(); UpdateProcessInstancesSuspensionStateBuilder groupBuilder = null; if (processInstanceIds != null) { groupBuilder = selectBuilder.byProcessInstanceIds(processInstanceIds); } if (processInstanceQuery != null) { if (groupBuilder == null) { groupBuilder = selectBuilder.byProcessInstanceQuery(processInstanceQuery.toQuery(engine)); } else { groupBuilder.byProcessInstanceQuery(processInstanceQuery.toQuery(engine)); } } if (historicProcessInstanceQuery != null) { if (groupBuilder == null) { groupBuilder = selectBuilder.byHistoricProcessInstanceQuery(historicProcessInstanceQuery.toQuery(engine)); } else { groupBuilder.byHistoricProcessInstanceQuery(historicProcessInstanceQuery.toQuery(engine)); } } return(groupBuilder); }