Beispiel #1
0
 public BaseTaskInstanceBuilder SetManualActivationRule(string name, CMMNExpression expression)
 {
     ManualActivationRule = new ManualActivationRule
     {
         Expression = expression,
         Name       = name
     };
     return(this);
 }
Beispiel #2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testManualActivationRuleByDefaultPlanItemControl()
        public virtual void testManualActivationRuleByDefaultPlanItemControl()
        {
            // given
            PlanItemControl      defaultControl       = createElement(decisionTask, "ItemControl_1", typeof(DefaultControl));
            ManualActivationRule manualActivationRule = createElement(defaultControl, "ManualActivationRule_1", typeof(ManualActivationRule));
            ConditionExpression  expression           = createElement(manualActivationRule, "Expression_1", typeof(ConditionExpression));

            expression.Text = "${true}";

            Cmmn.validateModel(modelInstance);

            // when
            CmmnActivity newActivity = handler.handleElement(planItem, context);

            // then
            object rule = newActivity.getProperty(PROPERTY_MANUAL_ACTIVATION_RULE);

            assertNotNull(rule);
            assertTrue(rule is CaseControlRule);
        }
Beispiel #3
0
        protected internal virtual void initializeManualActivationRule(CmmnElement element, CmmnActivity activity, CmmnHandlerContext context)
        {
            PlanItemControl itemControl    = getItemControl(element);
            PlanItemControl defaultControl = getDefaultControl(element);

            ManualActivationRule manualActivationRule = null;

            if (itemControl != null)
            {
                manualActivationRule = itemControl.ManualActivationRule;
            }
            if (manualActivationRule == null && defaultControl != null)
            {
                manualActivationRule = defaultControl.ManualActivationRule;
            }

            if (manualActivationRule != null)
            {
                CaseControlRule caseRule = initializeCaseControlRule(manualActivationRule.Condition, context);
                activity.setProperty(PROPERTY_MANUAL_ACTIVATION_RULE, caseRule);
            }
        }
Beispiel #4
0
        private static List <BaseCasePlanItemInstance> BuildPlanItems(tStage stage, string casePlanInstanceId)
        {
            var planItems = new List <BaseCasePlanItemInstance>();

            if (stage.planItem != null)
            {
                foreach (var planItem in stage.planItem)
                {
                    var planItemDef     = stage.Items.First(i => i.id == planItem.definitionRef);
                    var flowInstanceElt = BuildPlanItem(planItem.id, planItem.name, planItemDef, casePlanInstanceId);
                    if (planItem.entryCriterion != null)
                    {
                        foreach (var entryCriterion in planItem.entryCriterion)
                        {
                            var sEntry = stage.sentry.First(s => s.id == entryCriterion.sentryRef);
                            flowInstanceElt.EntryCriterions.Add(new Criteria(entryCriterion.name)
                            {
                                SEntry = BuildSEntry(sEntry)
                            });
                        }
                    }

                    if (planItem.exitCriterion != null)
                    {
                        foreach (var exitCriteria in planItem.exitCriterion)
                        {
                            var sEntry = stage.sentry.First(s => s.id == exitCriteria.sentryRef);
                            flowInstanceElt.ExitCriterions.Add(new Criteria(exitCriteria.name)
                            {
                                SEntry = BuildSEntry(sEntry)
                            });
                        }
                    }

                    if (planItem.itemControl != null)
                    {
                        var baseTask = flowInstanceElt as BaseTaskOrStageElementInstance;
                        if (planItem.itemControl.manualActivationRule != null && baseTask != null)
                        {
                            var manualActivationRule = new ManualActivationRule(planItem.itemControl.manualActivationRule.name);
                            var condition            = planItem.itemControl.manualActivationRule.condition;
                            if (condition != null && condition.Text.Any())
                            {
                                manualActivationRule.Expression = new CMMNExpression(condition.language, condition.Text.First());
                            }

                            baseTask.ManualActivationRule = manualActivationRule;
                        }

                        if (planItem.itemControl.repetitionRule != null)
                        {
                            var repetitionRule = new RepetitionRule(planItem.itemControl.repetitionRule.name);
                            var condition      = planItem.itemControl.repetitionRule.condition;
                            if (condition != null && condition.Text.Any())
                            {
                                repetitionRule.Condition = new CMMNExpression(condition.language, condition.Text.First());
                            }

                            flowInstanceElt.RepetitionRule = repetitionRule;
                        }
                    }

                    planItems.Add(flowInstanceElt);
                }
            }

            return(planItems);
        }