Ejemplo n.º 1
0
        public virtual void close(CaseExecutionTriggerDto triggerDto)
        {
            try
            {
                CaseService caseService = engine.CaseService;
                CaseExecutionCommandBuilder commandBuilder = caseService.withCaseExecution(caseInstanceId);

                initializeCommand(commandBuilder, triggerDto, "close");

                commandBuilder.close();
            }
            catch (NotFoundException e)
            {
                throw createInvalidRequestException("close", Status.NOT_FOUND, e);
            }
            catch (NotValidException e)
            {
                throw createInvalidRequestException("close", Status.BAD_REQUEST, e);
            }
            catch (NotAllowedException e)
            {
                throw createInvalidRequestException("close", Status.FORBIDDEN, e);
            }
            catch (ProcessEngineException e)
            {
                throw createRestException("close", Status.INTERNAL_SERVER_ERROR, e);
            }
        }
Ejemplo n.º 2
0
        protected internal virtual void initializeCommandWithVariables(CaseExecutionCommandBuilder commandBuilder, IDictionary <string, TriggerVariableValueDto> variables, string transition)
        {
            foreach (string variableName in variables.Keys)
            {
                try
                {
                    TriggerVariableValueDto variableValue = variables[variableName];
                    TypedValue typedValue = variableValue.toTypedValue(engine, objectMapper);

                    if (variableValue.Local)
                    {
                        commandBuilder.setVariableLocal(variableName, typedValue);
                    }
                    else
                    {
                        commandBuilder.setVariable(variableName, typedValue);
                    }
                }
                catch (RestException e)
                {
                    string errorMessage = string.Format("Cannot {0} case execution {1} due to invalid variable {2}: {3}", transition, caseExecutionId, variableName, e.Message);
                    throw new RestException(e.Status, e, errorMessage);
                }
            }
        }
Ejemplo n.º 3
0
 protected internal virtual void initializeCommandWithDeletions(CaseExecutionCommandBuilder commandBuilder, IList <VariableNameDto> deletions, string transition)
 {
     foreach (VariableNameDto variableName in deletions)
     {
         if (variableName.Local)
         {
             commandBuilder.removeVariableLocal(variableName.Name);
         }
         else
         {
             commandBuilder.removeVariable(variableName.Name);
         }
     }
 }
Ejemplo n.º 4
0
        protected internal virtual void initializeCommand(CaseExecutionCommandBuilder commandBuilder, CaseExecutionTriggerDto triggerDto, string transition)
        {
            IDictionary <string, TriggerVariableValueDto> variables = triggerDto.Variables;

            if (variables != null && variables.Count > 0)
            {
                initializeCommandWithVariables(commandBuilder, variables, transition);
            }

            IList <VariableNameDto> deletions = triggerDto.Deletions;

            if (deletions != null && deletions.Count > 0)
            {
                initializeCommandWithDeletions(commandBuilder, deletions, transition);
            }
        }