Esempio n. 1
0
 public static void executeXRuleMethods(ILoadedXRule iLoadedXRule, Action<bool, object> executionResult, Action onComplete)
 {
     O2Thread.mtaThread(
         () =>
             {
                 DI.log.info("executing XRule: {0}", iLoadedXRule.XRule.Name);
                 foreach (var method in iLoadedXRule.methods)
                     executeXRuleMethod(method.Value, executionResult);
                 onComplete();
             });
     //executionResult(false);
 }
 public static void executeXRuleMethods(ILoadedXRule iLoadedXRule, Action <bool, object> executionResult, Action onComplete)
 {
     O2Thread.mtaThread(
         () =>
     {
         DI.log.info("executing XRule: {0}", iLoadedXRule.XRule.Name);
         foreach (var method in iLoadedXRule.methods)
         {
             executeXRuleMethod(method.Value, executionResult);
         }
         onComplete();
     });
     //executionResult(false);
 }
Esempio n. 3
0
        public void showXRuleDetails(ILoadedXRule xLoadedRule)
        {
            try
            {
                var currentSelectedIndex = lbXRule_MethodsAvailable.SelectedIndex;  // I really should use the selectedItem but it is throwing a weird error
                lbXRule_MethodsAvailable.Enabled = false;
                lbXRule_MethodsAvailable.Items.Clear();
                //methodsInCurrentRule = new Dictionary<string, MethodInfo>();

                foreach (var attribute in xLoadedRule.methods.Keys)
                {
                    lbXRule_MethodsAvailable.Items.Add(attribute);
                }

                Application.DoEvents();
                if (lbXRule_MethodsAvailable.Items.Count > 0)
                {
                    if (currentSelectedIndex > -1)// != null)
                    {
                        lbXRule_MethodsAvailable.SelectedIndex = currentSelectedIndex;
                        autoExecuteMethodIfRequired();


                        /*foreach (var newItem in lbXRule_MethodsAvailable.Items)
                         *  if (newItem.ToString() == currentSelectedItem.ToString())
                         *      lbXRule_MethodsAvailable.SelectedItem = newItem;*/
                    }
                    else
                    {
                        lbXRule_MethodsAvailable.SelectedIndex = 0;
                    }
                }

                /*foreach(var method in DI.reflection.getMethods(XRule.GetType(), new XRuleAttribute()))
                 * {
                 *
                 *  lbXRule_MethodsAvailable.Items.Add(method);
                 * }*/
            }
            catch (Exception ex)
            {
                DI.log.error("in showXRuleDetails: {0}", ex);
            }
            lbXRule_MethodsAvailable.Enabled = true;
        }
Esempio n. 4
0
        private void executeXRuleMethod(ILoadedXRule xLoadedRule, XRuleAttribute attribute)
        {
            if (xLoadedRule.methods.ContainsKey(attribute))
            {
                //var _loadedArtifacts = getLoadedArtifacts();

                var methodToExecute  = xLoadedRule.methods[attribute];
                var methodParameters = new List <Object>();
                foreach (var parameter in methodToExecute.GetParameters())
                {
                    if (loadedArtifacts.ContainsKey(parameter.ParameterType))
                    {
                        methodParameters.Add(loadedArtifacts[parameter.ParameterType]);
                    }
                }
                DI.reflection.invokeASync(xLoadedRule.XRule, methodToExecute, methodParameters.ToArray(), onXRuleExecutionCompletion);
            }
        }
        private void executeXRuleMethod(ILoadedXRule xLoadedRule, XRuleAttribute attribute)
        {
            if (xLoadedRule.methods.ContainsKey(attribute))
            {                
                //var _loadedArtifacts = getLoadedArtifacts();

                var methodToExecute = xLoadedRule.methods[attribute];
                var methodParameters = new List<Object>();
                foreach(var parameter in methodToExecute.GetParameters())
                    if (loadedArtifacts.ContainsKey(parameter.ParameterType))
                        methodParameters.Add(loadedArtifacts[parameter.ParameterType]);               
                DI.reflection.invokeASync(xLoadedRule.XRule, methodToExecute, methodParameters.ToArray(), onXRuleExecutionCompletion);                
            }
        }
        public void showXRuleDetails(ILoadedXRule xLoadedRule)
        {
            try
            {
                var currentSelectedIndex = lbXRule_MethodsAvailable.SelectedIndex;  // I really should use the selectedItem but it is throwing a weird error
                lbXRule_MethodsAvailable.Enabled = false;
                lbXRule_MethodsAvailable.Items.Clear();
                //methodsInCurrentRule = new Dictionary<string, MethodInfo>();

                foreach (var attribute in xLoadedRule.methods.Keys)
                    lbXRule_MethodsAvailable.Items.Add(attribute);

                Application.DoEvents();
                if (lbXRule_MethodsAvailable.Items.Count > 0)
                    if (currentSelectedIndex > -1)// != null)
                    {
                        lbXRule_MethodsAvailable.SelectedIndex = currentSelectedIndex;
                        autoExecuteMethodIfRequired();


                        /*foreach (var newItem in lbXRule_MethodsAvailable.Items)
                            if (newItem.ToString() == currentSelectedItem.ToString())
                                lbXRule_MethodsAvailable.SelectedItem = newItem;*/
                    }
                    else
                        lbXRule_MethodsAvailable.SelectedIndex = 0;
                /*foreach(var method in DI.reflection.getMethods(XRule.GetType(), new XRuleAttribute()))
                {          
                                
                    lbXRule_MethodsAvailable.Items.Add(method);
                }*/
            }
            catch (Exception ex)
            {
                DI.log.error("in showXRuleDetails: {0}", ex);

            }
            lbXRule_MethodsAvailable.Enabled = true;
        }