private void CheckScriptTriggerOrder(ScriptTriggerDealEventType evt, MarketOrder order)
        {
            // сформировать список скриптов для срабатывания
            var scriptsToFire = new List <TerminalScript>();
            var scripts       = ScriptManager.Instance.GetScripts().ToList();

            foreach (var script in scripts.Where(s => s.Trigger != null &&
                                                 s.Trigger is ScriptTriggerDealEvent /*&& s.ScriptTarget != TerminalScript.TerminalScriptTarget.График*/))
            {
                var orderScriptTrigger = (ScriptTriggerDealEvent)script.Trigger;
                var shouldFire         = (orderScriptTrigger.eventType & evt) == evt;
                if (shouldFire)
                {
                    orderScriptTrigger.sourceOrder = order;
                    orderScriptTrigger.sourceEvent = evt;
                    scriptsToFire.Add(script);
                }
            }

            // запустить скрипты на выполнение
            if (scriptsToFire.Count > 0)
            {
                ThreadPool.QueueUserWorkItem(ExecuteScriptsRoutine, scriptsToFire);
            }
        }
 protected override void InitParamsFromXml(XmlElement node)
 {
     if (node.Attributes["eventType"] != null)
     {
         try
         {
             var eventTypeNum = node.Attributes["eventType"].Value.ToInt();
             eventType = (ScriptTriggerDealEventType)eventTypeNum;
         }
         catch
         {
             return;
         }
     }
 }
Example #3
0
        private void CheckScriptTriggerOrder(ScriptTriggerDealEventType evt, MarketOrder order)
        {
            // сформировать список скриптов для срабатывания
            var scriptsToFire = new List<TerminalScript>();
            var scripts = ScriptManager.Instance.GetScripts().ToList();
            foreach (var script in scripts.Where(s => s.Trigger != null &&
                s.Trigger is ScriptTriggerDealEvent /*&& s.ScriptTarget != TerminalScript.TerminalScriptTarget.График*/))
            {
                var orderScriptTrigger = (ScriptTriggerDealEvent)script.Trigger;
                var shouldFire = (orderScriptTrigger.eventType & evt) == evt;
                if (shouldFire)
                {
                    orderScriptTrigger.sourceOrder = order;
                    orderScriptTrigger.sourceEvent = evt;
                    scriptsToFire.Add(script);
                }
            }

            // запустить скрипты на выполнение
            if (scriptsToFire.Count > 0)
                ThreadPool.QueueUserWorkItem(ExecuteScriptsRoutine, scriptsToFire);
        }
 protected override void InitParamsFromXml(XmlElement node)
 {
     if (node.Attributes["eventType"] != null)
     {
         try
         {
             var eventTypeNum = node.Attributes["eventType"].Value.ToInt();
             eventType = (ScriptTriggerDealEventType) eventTypeNum;
         }
         catch
         {
             return;
         }
     }
 }