public void AddAlarm(string strCodeCreateur, int nCondition, CFuturocomTrace trace) { CCreateurAlarme createur = m_trapHandler.GetCreateur(strCodeCreateur); if (createur != null) { CLocalTypeAlarme typeAl = createur.TypeAlarme; if (typeAl != null) { CLocalAlarme alarme = new CLocalAlarme(m_dbPourAlarmes); alarme.CreateNew(); alarme.TypeAlarme = typeAl; alarme.EntiteDeclencheuse = EntiteAssociee; alarme.EtatCode = typeAl.EtatDefaut; CResultAErreur result = createur.FillAlarm(this, alarme); if (!result && trace != null) { trace.Write("Creator fill alarm error " + result.Erreur.ToString(), ALTRACE.DEBUG); } if (m_listeAlarmesACreer.FirstOrDefault(ac => ac.Alarme.GetKey() == alarme.GetKey()) == null) { CAlarmeACreer create = new CAlarmeACreer(alarme, (EOptionCreationAlarme)nCondition); m_listeAlarmesACreer.Add(create); } } else if (trace != null) { trace.Write(createur.Libelle + " alarm type is null"); } } else { if (trace != null) { trace.Write( "Can not find creator " + strCodeCreateur, ALTRACE.DEBUG); } } }
public void CreateAlarmesOnTrap(CTrapInstance trap, CFuturocomTrace trace) { trap.CurrentTrapHandler = this; CDefinitionProprieteDynamiqueVariableFormule def = AssureVariableTrap(FormulePreTraitementTrap); CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(TypeAgent); if (def != null) { ctx.SetValeurVariable(def, trap); } CResultAErreur result = CResultAErreur.True; trap.EntiteAssociee = null; if (FormuleIndexEntite != null && TypeEntiteAssocie != null) { CContexteEvaluationExpression ctxSurThis = new CContexteEvaluationExpression(trap); result = FormuleIndexEntite.Eval(ctxSurThis); if (result && result.Data != null) { CListeEntitesDeMemoryDb <CEntiteSnmpPourSupervision> lst = trap.AgentSnmp.Entites; lst.Filtre = new CFiltreMemoryDb(CEntiteSnmpPourSupervision.c_champIndex + "=@1 and " + CTypeEntiteSnmpPourSupervision.c_champId + "=@2", result.Data.ToString(), TypeEntiteAssocie.Id); if (lst.Count() > 0) { trap.EntiteAssociee = lst.ElementAt(0); if (trace != null) { trace.Write( "Trap associated to entity " + trap.EntiteAssociee.Libelle + " (" + trap.EntiteAssociee.TypeEntite.Libelle + ")", ALTRACE.DEBUG); } } else { if (trace != null) { trace.Write( "Associated entity is null (" + TypeEntiteAssocie.Libelle + " " + result.Data.ToString() + ")", ALTRACE.DEBUG); } } } else { if (trace != null) { if (!result) { trace.Write( "Error in associed entity index formula : " + result.Erreur.ToString(), ALTRACE.DEBUG); } else { trace.Write( "Error in associed entity index formula : the formula returned a null result", ALTRACE.DEBUG); } } } } bool bEvalPretraite = true; if (FormulePreTraitementTrap is C2iExpressionGraphique && FormulePreTraitementTrap.Parametres.Count == 0) { bEvalPretraite = false; } if (bEvalPretraite) { result = FormulePreTraitementTrap.Eval(ctx); if (!result && trace != null) { trace.Write( "Error in Pretreatment formula " + result.Erreur.ToString(), ALTRACE.DEBUG); } } foreach (CCreateurAlarme createur in CreateursAlarmes) { if (trace != null) { trace.Write( "Try creator " + createur.Libelle + " (" + createur.Code + ")", ALTRACE.DEBUG); } bool bCreer = createur.FormuleCondition.GetType() == typeof(C2iExpressionVrai); if (!bCreer) { ctx = new CContexteEvaluationExpression(trap); result = createur.FormuleCondition.Eval(ctx); if (result && result.Data is bool && (bool)result.Data) { bCreer = true; } else if (trace != null) { if (!result) { trace.Write( "Creator " + createur.Libelle + " condition error : " + result.Erreur.ToString(), ALTRACE.DEBUG); } else { trace.Write( "Create " + createur.Libelle + " condition returned false", ALTRACE.DEBUG); } } } if (bCreer) { if (trace != null) { trace.Write( "Creator " + createur.Libelle + " condition returned true", ALTRACE.DEBUG); } trap.AddAlarm(createur.Code, 0, trace); } } }