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 CLocalAlarme GetLocalAlarme(CMemoryDb database, bool bAvecFils) { if (database == null) { database = CMemoryDbPourSupervision.GetMemoryDb(ContexteDonnee); } CAlarme alarmeParente = AlarmeParente; CLocalAlarme localParent = null; if (alarmeParente != null) { localParent = alarmeParente.GetLocalAlarme(database, false); } CLocalAlarme alarme = new CLocalAlarme(database); if (!alarme.ReadIfExist(AlarmId.ToString(), false)) { alarme.CreateNew(AlarmId.ToString()); } else if (!alarme.IsToRead()) { return(alarme); } alarme.PreventPropagationsAutomatiques = true; alarme.Row[CMemoryDb.c_champIsToRead] = false; alarme.DateDebut = DateDebut; alarme.DateFin = DateFin; alarme.TypeAlarme = TypeAlarme.GetTypeForSupervision(database, false); alarme.Severite = Severite.GetTypeForSupervision(database); alarme.Parent = localParent; alarme.EtatCode = (EEtatAlarme)EtatCode; alarme.Libelle = Libelle; alarme.DateAcquittement = DateAcquittement; alarme.SiteId = SiteId; alarme.EquipementId = EquipementId; alarme.LienId = LienId; alarme.EntiteSnmpId = EntiteSnmpId; alarme.IsHS = IsHS; alarme.NiveauMasquage = NiveauMasquage; if (Severite != null) { CLocalSeveriteAlarme sev = Severite.GetTypeForSupervision(database); if (sev != null) { alarme.Severite = sev; } } if (MasquagePropre != null) { alarme.MasquagePropre = MasquagePropre.GetLocalParametrageForSupervision(database); } if (MasquageHerite != null) { alarme.MasquageHerite = MasquageHerite.GetLocalParametrageForSupervision(database); } // Recupère les valeurs de champs foreach (CRelationAlarme_ChampCustom rel in RelationsChampsCustom) { object val = rel.Valeur; if (val != null) { if (val is CObjetDonneeAIdNumerique) { val = ((CObjetDonneeAIdNumerique)val).Id; } alarme.SetValeurChamp(rel.ChampCustom.Id.ToString(), val); } } alarme.PreventPropagationsAutomatiques = false; if (bAvecFils) { foreach (CAlarme fille in AlarmesFilles) { fille.GetLocalAlarme(database, true); } } return(alarme); }