Пример #1
0
        public virtual void Visit(RSActionData inActionData, TableLineRef inSourceRef)
        {
            if (inActionData == null)
            {
                return;
            }

            inSourceRef = inSourceRef.CombineEnabled(inActionData.Enabled);

            Visit(inActionData.Action, EntityScopedIdentifier.Type.Action, inSourceRef);
            if (inActionData.Arguments != null)
            {
                for (int i = 0; i < inActionData.Arguments.Length; ++i)
                {
                    Visit(inActionData.Arguments[i], inSourceRef);
                }
            }
        }
Пример #2
0
        public virtual bool Visit(RSActionData ioActionData)
        {
            if (ioActionData == null)
            {
                return(false);
            }

            bool bChanged = Visit(ref ioActionData.Action, EntityScopedIdentifier.Type.Action);

            if (ioActionData.Arguments != null)
            {
                for (int i = 0; i < ioActionData.Arguments.Length; ++i)
                {
                    Visit(ioActionData.Arguments[i]);
                }
            }
            return(bChanged);
        }
Пример #3
0
        static private RuleFlags GetRuleFlags(RSActionData inActionData, RSLibrary inLibrary)
        {
            RuleFlags flags = 0;

            if (inActionData.Enabled)
            {
                flags |= GetRuleFlags(inActionData.Action.Scope, inLibrary);
                flags |= GetRuleFlags(inLibrary.GetAction(inActionData.Action.Id));

                if (inActionData.Arguments != null)
                {
                    foreach (var arg in inActionData.Arguments)
                    {
                        flags |= GetRuleFlags(arg, inLibrary);
                    }
                }
            }

            return(flags);
        }