示例#1
0
        bool IsActive(ChoiceActionItem choiceActionItem)
        {
            var xpoStateMachine = (choiceActionItem.Data as IStateMachine);

            if (xpoStateMachine != null)
            {
                var boolList = new BoolList(true, BoolListOperatorType.Or);
                boolList.BeginUpdate();
                foreach (var item in choiceActionItem.Items)
                {
                    var xpoTransition        = ((XpoTransition)item.Data);
                    var choiceActionItemArgs = new ChoiceActionItemArgs(xpoTransition, item.Active);
                    OnRequestActiveState(choiceActionItemArgs);
                    boolList.SetItemValue(xpoTransition.Oid.ToString(), item.Active.ResultValue);
                }
                boolList.EndUpdate();
                return(boolList.ResultValue);
            }
            var transition = choiceActionItem.Data as XpoTransition;

            if (transition != null)
            {
                var choiceActionItemArgs = new ChoiceActionItemArgs(transition, choiceActionItem.Active);
                OnRequestActiveState(choiceActionItemArgs);
                return(choiceActionItem.Active);
            }
            throw new NotImplementedException();
        }
        void RequestActiveState(object sender, ChoiceActionItemArgs choiceActionItemArgs)
        {
            var key = typeof(PermissionTransitionStateController).Name;

            if (IsGranted(choiceActionItemArgs.Transition, true))
            {
                choiceActionItemArgs.Active[key] = false;
            }
        }
示例#3
0
        protected virtual void OnRequestActiveState(ChoiceActionItemArgs e)
        {
            var handler = RequestActiveState;

            if (handler != null)
            {
                handler(this, e);
            }
        }
        void ChangeStateActionControllerOnRequestActiveStateAction(object sender, ChoiceActionItemArgs choiceActionItemArgs)
        {
            var key = typeof(PermissionTransitionStateController).Name;

            choiceActionItemArgs.Active[key] = IsActive(choiceActionItemArgs.Transition);
        }
        protected virtual void OnRequestActiveState(ChoiceActionItemArgs e)
        {
            var handler = RequestActiveState;

            handler?.Invoke(this, e);
        }