public void RunStartupScripts(BuildOptions buildOptions, ScriptsOptions scriptsOptions) { foreach (ScriptKey scriptKey in this.startupScripts) { this.Run(scriptKey.File, buildOptions, scriptsOptions); } }
internal ScriptRunner(ScriptKey key, Script script, ScriptsOptions options, string id) { this.key = key; this.script = script; this.options = options; this.id = id; this.isRunning = false; }
public void Run(FileInfo file, BuildOptions buildOptions, ScriptsOptions scriptsOptions, OpenQuant.API.ScriptSettings scriptSettings) { ScriptKey key = new ScriptKey(file); if (this.runners.ContainsKey(key)) { throw new InvalidOperationException("The script " + file.Name + " is already running"); } Script script = this.Build(file, buildOptions); if (script == null) { return; } if (scriptSettings != null) { foreach (KeyValuePair <string, object> keyValuePair in scriptSettings) { FieldInfo field = script.GetType().GetField(keyValuePair.Key, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetField); if (field != (FieldInfo)null) { if (field.GetCustomAttributes(typeof(ParameterAttribute), true).Length > 0) { try { field.SetValue(script, keyValuePair.Value); } catch { } } } } } ScriptRunner scriptRunner = new ScriptRunner(key, script, scriptsOptions, this.scriptID.ToString()); scriptRunner.Starting += new EventHandler(this.runner_Starting); scriptRunner.Started += new EventHandler(this.runner_Started); scriptRunner.Stopping += new EventHandler(this.runner_Stopping); scriptRunner.Stopped += new EventHandler(this.runner_Stopped); scriptRunner.Error += new EventHandler <ScriptRunnerErrorEventArgs>(this.runner_Error); this.runners.Add(key, scriptRunner); scriptRunner.Start(); }
public void Run(FileInfo file, BuildOptions buildOptions, ScriptsOptions scriptsOptions) { this.Run(file, buildOptions, scriptsOptions, null); }