Ejemplo n.º 1
0
		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;
		}
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
        internal ScriptSettings GetScriptSettings(FileInfo file, BuildOptions buildOptions)
        {
            ScriptKey key = new ScriptKey(file);

            if (!this.settings.ContainsKey(key))
            {
                this.Build(file, buildOptions);
            }
            return(this.settings[key]);
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        public Script Build(FileInfo file, BuildOptions buildOptions)
        {
            Script         script = this.BuildScript(file, buildOptions);
            ScriptKey      key    = new ScriptKey(file);
            ScriptSettings scriptSettings;

            if (!this.settings.TryGetValue(key, out scriptSettings))
            {
                scriptSettings = new ScriptSettings(file);
                this.settings.Add(key, scriptSettings);
            }
            scriptSettings.Script = script;
            if (script != null)
            {
                scriptSettings.Merge(script);
                scriptSettings.Populate(script);
                scriptSettings.Save();
            }
            return(script);
        }