Beispiel #1
0
        private void RunScript(Assembly assembly, string scriptName, IWorkItem self)
        {
            // HACK name must match C# and VB.NET implementations
            var classForScript = assembly.GetType("RESERVED.Script_" + scriptName);

            if (classForScript == null)
            {
                this.Logger.FailureLoadingScript(scriptName);
                return;
            }

            var interfaceForScript = classForScript.GetInterface(typeof(IDotNetScript).Name);

            if (interfaceForScript == null)
            {
                this.Logger.FailureLoadingScript(scriptName);
                return;
            }

            ConstructorInfo constructor = classForScript.GetConstructor(Type.EmptyTypes);

            if (constructor == null || !constructor.IsPublic)
            {
                this.Logger.FailureLoadingScript(scriptName);
                return;
            }

            // we specified that we wanted a constructor that doesn't take parameters, so don't pass parameters
            IDotNetScript scriptObject = constructor.Invoke(null) as IDotNetScript;

            if (scriptObject == null)
            {
                this.Logger.FailureLoadingScript(scriptName);
                return;
            }

            System.Diagnostics.Debug.WriteLine("*** about to execute {0}", scriptName, null);
            this.Logger.ScriptLogger.RuleName = scriptName;

            // Lets run our script and display its results
            object result = scriptObject.RunScript(self, this.Store, this.Logger.ScriptLogger);

            this.Logger.ResultsFromScriptRun(scriptName, result);
        }
Beispiel #2
0
        private void RunScript(Assembly assembly, string scriptName, IWorkItem self, IWorkItemRepository store)
        {
            var classForScript = assembly.GetType(this.Namespace + "." + this.ClassPrefix + scriptName);

            if (classForScript == null)
            {
                this.Logger.FailureLoadingScript(scriptName);
                return;
            }

            var interfaceForScript = classForScript.GetInterface(typeof(IDotNetScript).Name);

            if (interfaceForScript == null)
            {
                this.Logger.FailureLoadingScript(scriptName);
                return;
            }

            ConstructorInfo constructor = classForScript.GetConstructor(Type.EmptyTypes);

            if (constructor == null || !constructor.IsPublic)
            {
                this.Logger.FailureLoadingScript(scriptName);
                return;
            }

            // we specified that we wanted a constructor that doesn't take parameters, so don't pass parameters
            IDotNetScript scriptObject = constructor.Invoke(null) as IDotNetScript;

            if (scriptObject == null)
            {
                this.Logger.FailureLoadingScript(scriptName);
                return;
            }

            this.Logger.ScriptLogger.RuleName = scriptName;

            // Lets run our script and display its results
            object result = scriptObject.RunScript(self, store, this.Logger.ScriptLogger, this.Library);

            this.Logger.ResultsFromScriptRun(scriptName, result);
        }