/// <summary> /// Retourne true si une clé de l'agent correspond au finder /// </summary> /// <param name="agent"></param> /// <returns></returns> public bool MatchAgent(CTrapInstance trap, CAgentSnmpPourSupervision agent) { if (FormuleCleSpecifique != null) { CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(trap); CResultAErreur result = FormuleCleSpecifique.Eval(ctx); if (!result || result.Data == null) { return(false); } if (agent.TrapsIpString.Contains("," + result.Data.ToString() + ",")) { return(true); } } return(false); }
//------------------------------------------------------------------ public CAgentSnmpPourSupervision[] GetAgentsFromKey(CTrapInstance trap) { CListeEntitesDeMemoryDb <CAgentSnmpPourSupervision> lstAgents = new CListeEntitesDeMemoryDb <CAgentSnmpPourSupervision>(Database); if (FormuleCleSpecifique != null) { CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(trap); CResultAErreur result = FormuleCleSpecifique.Eval(ctx); if (result && result.Data != null && result.Data is string) { lstAgents.Filtre = new CFiltreMemoryDb( CAgentSnmpPourSupervision.c_champTrapsIp + " like @1", "%," + (string)result.Data + ",%"); return(lstAgents.ToArray()); } } return(new CAgentSnmpPourSupervision[] { }); }