Ejemplo n.º 1
0
        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());
            }
        }
Ejemplo n.º 2
0
        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);
        }