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); }
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; }
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; }