コード例 #1
0
ファイル: ScriptsEngine.cs プロジェクト: ashamrai/tfevents
        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);
        }
コード例 #2
0
ファイル: ScriptsEngine.cs プロジェクト: ashamrai/tfevents
        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);
        }