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); }
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); }