/// //////////////////////////////////////////////////////// /// <summary> /// Ajoute les ids des variables utilisées par une expression à une hashtable /// </summary> /// <param name="expression"></param> /// <param name="table"></param> protected void AddIdVariablesExpressionToHashtable(C2iExpression expression, Hashtable table) { if (expression != null) { foreach (C2iExpressionChamp exp in expression.ExtractExpressionsType(typeof(C2iExpressionChamp))) { CDefinitionProprieteDynamique prop = exp.DefinitionPropriete; if (prop is CDefinitionProprieteDynamiqueVariableDynamique) { table[((CDefinitionProprieteDynamiqueVariableDynamique)prop).IdChamp] = true; } } } }
protected override void FillListeProprietesUtilisees(System.Collections.Generic.HashSet <CDefinitionProprieteDynamique> def) { base.FillListeProprietesUtilisees(def); if (m_expression != null) { ArrayList lst = m_expression.ExtractExpressionsType(typeof(C2iExpressionChamp)); foreach (C2iExpressionChamp exp in lst) { if (exp.DefinitionPropriete != null) { def.Add(exp.DefinitionPropriete); } } } }
/// ////////////////////////////////////////////////// protected void OnChangeVariable(CFiltreDynamique filtre, C2iExpression expression, CVariableDynamique variable) { if (expression == null) { return; } foreach (C2iExpressionChamp exp in expression.ExtractExpressionsType(typeof(C2iExpressionChamp))) { if (exp.DefinitionPropriete is CDefinitionProprieteDynamiqueVariableDynamique) { CDefinitionProprieteDynamiqueVariableDynamique def = (CDefinitionProprieteDynamiqueVariableDynamique)exp.DefinitionPropriete; if (def.IdChamp == variable.IdVariable) { def = new CDefinitionProprieteDynamiqueVariableDynamique(variable); exp.DefinitionPropriete = def; } } } }
/// ////////////////////////////////////////////////// protected bool DoesExpressionUtiliseVariable(C2iExpression expression, CVariableDynamique variable) { if (expression == null) { return(false); } foreach (C2iExpressionChamp exp in expression.ExtractExpressionsType(typeof(C2iExpressionChamp))) { if (exp.DefinitionPropriete is CDefinitionProprieteDynamiqueVariableDynamique) { CDefinitionProprieteDynamiqueVariableDynamique def = (CDefinitionProprieteDynamiqueVariableDynamique)exp.DefinitionPropriete; if (def.IdChamp == variable.IdVariable) { return(true); } } } return(false); }
//------------------------------------------------- private CResultAErreurType <C2iExpression> GetFormuleFinaleForEntite(CEntiteSnmp entite) { CResultAErreurType <C2iExpression> result = new CResultAErreurType <C2iExpression>(); if (m_formulePolling == null) { result.EmpileErreur(I.T("Can not apply formula to entity @1|20254", entite.Libelle)); return(result); } C2iExpression formule = CCloner2iSerializable.Clone(m_formulePolling) as C2iExpression; ArrayList lst = formule.ExtractExpressionsType(typeof(C2iExpressionChamp)); foreach (C2iExpressionChamp exp in lst) { CDefinitionProprieteDynamiqueChampCustom def = exp.DefinitionPropriete as CDefinitionProprieteDynamiqueChampCustom; string strOID = null; if (def != null) { CChampCustom champ = new CChampCustom(CContexteDonneeSysteme.GetInstance()); if (champ.ReadIfExists(def.DbKeyChamp)) { strOID = entite.GetFieldOID(champ.Id); if (strOID.Trim().Length == 0) { strOID = null; } else { exp.DefinitionPropriete = new CDefinitionProprieteDynamiqueOID(strOID); } } } if (strOID == null) { result.EmpileErreur(I.T("Can not find SNMP field for @1|20255", def.Nom)); return(result); } } result.Data = formule; return(result); }
//------------------------------------------------------------------------ public bool DoesUse(object objetUtilisateur, object objetCherche) { if (objetCherche is CDefinitionProprieteDynamique) { C2iExpression formule = objetUtilisateur as C2iExpression; if (formule != null) { IEnumerable <C2iExpressionChamp> lstExps = from C2iExpressionChamp expChamp in formule.ExtractExpressionsType(typeof(C2iExpressionChamp)) where expChamp.DefinitionPropriete != null && expChamp.DefinitionPropriete.Equals(objetCherche) select expChamp; if (lstExps.Count() > 0) { return(true); } } } return(false); }