public bool CheckRuleWorkItemUpdated(WorkItemEvent.WorkItemEventUpdated pInputWorkItem, TFSServicesDBLib.Rules pRule) { bool _result = false; try { var _scrOpt = GetOptions(); string _srcHeader = @"bool CheckConditionUpdated(WorkItemEvent.WorkItemEventUpdated InputWorkItem){ "; string _srcEnd = @" } CheckConditionUpdated(InputWorkItem)"; string _src = _srcHeader + pRule.TriggerScript + _srcEnd; _result = CSharpScript.RunAsync <bool>(_src, _scrOpt, new ScriptWiUpdatedHost { InputWorkItem = pInputWorkItem }).Result.ReturnValue; if (Debug) { DBConnection.AddRunHistory(pRule, "Rule was validated: " + pRule.Title, TypesHelper.Serialize(pInputWorkItem)); } } catch (Exception ex) { if (Debug) { DBConnection.AddRunHistory(pRule, "Validation exception for : " + pRule.Title, ex.Message + "\n\n" + ex.StackTrace); } _result = false; } return(_result); }
public bool RunTaskScript(int pTaskId) { bool _result = false; string _scriptMessage = ""; string _scriptDetailedMessage = ""; TFSServicesDBLib.Rules _rule = DBConnection.GetRuleById(pTaskId); if (_rule == null) { DBConnection.AddRunHistory(null, "Can not find the rule Id: " + pTaskId, ""); return(false); } try { if (Debug) { DBConnection.AddRunHistory(_rule, "Start run", ""); } var _globals = new Globals { /*ScriptResult = true, ScriptMessage = "",*/ CustomSettings = CustomSettings }; var _scrOpt = GetOptions(); string _srcHeader = @"bool ScriptResult = true; string ScriptMessage = """"; string ScriptDetailedMessage = """"; void ProcessEvent(){ try { PluginManager PluginManager = new PluginManager(); PluginManager.Initialize(); "; string _srcGetClients = @"TFClientHelper TFClient = new TFClientHelper(""" + ServiceUrl + @""", """ + PAT + @"""); "; string _srcEnd = @" } catch(Exception ex) { ScriptMessage = ""Exception""; ScriptDetailedMessage = ex.Message + ""\n"" + ex.StackTrace; } } ProcessEvent()"; string _src = _srcHeader + _srcGetClients + _rule.ProcessScript + _srcEnd; var _scriptResult = CSharpScript.RunAsync <bool>(_src, _scrOpt, _globals).Result; if (_scriptResult.Variables.Length == 3) { _result = (bool)_scriptResult.Variables[0].Value; _scriptMessage = (string)_scriptResult.Variables[1].Value; _scriptDetailedMessage = (string)_scriptResult.Variables[2].Value; if (Debug) { DBConnection.AddRunHistory(_rule, "End run: " + _scriptMessage, _scriptDetailedMessage); } else { DBConnection.AddRunHistory(_rule, (_result)? "Success" : "Fail", _scriptMessage + "\n\n" + _scriptDetailedMessage); } } else { DBConnection.AddRunHistory(_rule, "Script did not return all globals", ""); } } catch (Exception ex) { DBConnection.AddRunHistory(_rule, "Script exception", ex.Message + "\n\n" + ex.StackTrace); _result = false; } return(_result); }