Beispiel #1
0
        internal IList <ScriptToRun> GetScriptsFor(ObjectClass objectClass, Scripting.Position position)
        {
            var rv = new List <ScriptToRun>();

            ScriptToRun[] scripts;
            switch (position)
            {
            case Scripting.Position.BeforeMain: scripts = BeforeMain; break;

            case Scripting.Position.InsteadOfMain: scripts = InsteadOfMain; break;

            case Scripting.Position.AfterMain: scripts = AfterMain; break;

            default: throw new ArgumentException("Invalid position: " + position);
            }
            if (scripts != null)
            {
                foreach (ScriptToRun scriptInfo in scripts)
                {
                    if (scriptInfo.IsRelevantFor(objectClass))
                    {
                        rv.Add(scriptInfo);
                    }
                }
            }
            return(rv);
        }
Beispiel #2
0
        internal IList <ScriptToRun> GetScriptsFor(string operationName, ObjectClass objectClass, Scripting.Position position)
        {
            List <ScriptToRun> rv = new List <ScriptToRun>();

            foreach (OperationInfo operationInfo in OperationInfo)
            {
                // does operation name match?
                bool match;
                if (operationInfo.OpType == null || operationInfo.OpType.Length == 0)
                {
                    match = true;
                }
                else
                {
                    match = false;
                    foreach (string specifiedOpType in operationInfo.OpType)
                    {
                        if (specifiedOpType.Equals(operationName, StringComparison.CurrentCultureIgnoreCase))
                        {
                            match = true;
                        }
                    }
                }

                if (match)
                {
                    CollectionUtil.AddAll(rv, operationInfo.GetScriptsFor(objectClass, position));
                }
            }
            rv.Sort((x, y) => x.Order.CompareTo(y.Order));
            return(rv);
        }