//---------------------------------------------------- /// <summary> /// Remplit ou met à jour l'alarme à partir de données /// issues d'un service de médiation /// </summary> /// <param name="alarme"></param> public void FillFromLocalAlarmeFromMediation(CLocalAlarme alarme) { Libelle = alarme.Libelle; Cle = alarme.GetKey(); AlarmId = alarme.Id; EtatCode = (int)alarme.EtatCode; DateDebut = alarme.DateDebut; DateFin = alarme.DateFin; CTypeAlarme ta = new CTypeAlarme(ContexteDonnee); if (ta.ReadIfExists(Int32.Parse(alarme.TypeAlarme.Id))) { TypeAlarme = ta; } else { throw new Exception(I.T("Alarm type @1 doesn't exists|20104", alarme.TypeAlarme.Libelle)); } Site = null; EquipementLogique = null; LienReseau = null; EntiteSnmp = null; //Site if (alarme.SiteId != null) { /*int? nId = CDbKeyAddOn.GetIdFromUniverselId(typeof(CSite), alarme.SiteId); * if (nId != null) * Row[CSite.c_champId] = nId.Value;*/ CSite site = new CSite(ContexteDonnee); if (site.ReadIfExists(alarme.SiteId)) { Site = site; } } if (alarme.EquipementId != null) { /*int? nId = CDbKeyAddOn.GetIdFromUniverselId(typeof(CEquipementLogique), alarme.EquipementId); * if (nId != null) * Row[CEquipementLogique.c_champId] = nId.Value;*/ CEquipementLogique eqt = new CEquipementLogique(ContexteDonnee); if (eqt.ReadIfExists(alarme.EquipementId)) { EquipementLogique = eqt; } } if (alarme.LienId != null) { /*int? nId = CDbKeyAddOn.GetIdFromUniverselId(typeof(CLienReseau), alarme.LienId); * if (nId != null) * Row[CLienReseau.c_champId] = nId.Value;*/ CLienReseau lien = new CLienReseau(ContexteDonnee); if (lien.ReadIfExists(alarme.LienId)) { LienReseau = lien; } } if (alarme.EntiteSnmpId != null) { /*int? nId = CDbKeyAddOn.GetIdFromUniverselId(typeof(CEntiteSnmp), alarme.EntiteSnmpId); * if (nId != null) * Row[CEntiteSnmp.c_champId] = nId.Value;*/ CEntiteSnmp entite = new CEntiteSnmp(ContexteDonnee); if (entite.ReadIfExists(alarme.EntiteSnmpId)) { EntiteSnmp = entite; } } IsHS = alarme.IsHS; if (alarme.IdSeverite != null) { CSeveriteAlarme severite = new CSeveriteAlarme(ContexteDonnee); if (severite.ReadIfExists(Int32.Parse(alarme.IdSeverite))) { Severite = severite; } } if (alarme.MasquagePropre != null) { CParametrageFiltrageAlarmes parametreFiltre = new CParametrageFiltrageAlarmes(ContexteDonnee); if (parametreFiltre.ReadIfExists(Int32.Parse(alarme.MasquagePropre.Id))) { MasquagePropre = parametreFiltre; } } else { MasquagePropre = null; } foreach (CChampCustom champ in ta.TousLesChampsAssocies) { object val = alarme.GetValeurChamp(champ.Id.ToString()); if (val != null) { SetValeurChamp(champ.Id, val); } } }
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); } } }
//---------------------------------------------------- private void GereHierarchie( CContexteDonnee ctxEdit, CLocalAlarme alarme, CMappageIdsAlarmes dicMapIds, HashSet <string> alarmesTraitees, CAlarme alarmeParente) { if (alarmesTraitees.Contains(alarme.Id)) { return; } CAlarme alarmeInDb = new CAlarme(ctxEdit); bool bExiste = false; string strIdAlarme = alarme.Id; if (alarmeInDb.ReadIfExists(new CFiltreData(CAlarme.c_champAlarmId + "=@1", strIdAlarme))) { bExiste = true; } else if (dicMapIds.TryGetValue(alarme.Id, out strIdAlarme)) { if (alarmeInDb.ReadIfExists(new CFiltreData(CAlarme.c_champAlarmId + "=@1", strIdAlarme))) { bExiste = true; } } else { strIdAlarme = alarme.Id; } if (!bExiste) { if (alarmeInDb.ReadIfExists( new CFiltreData(CAlarme.c_champCle + "=@1 and " + CAlarme.c_champDateFin + " is null", alarme.GetKey()))) { bExiste = true; } } if (!bExiste) { alarmeInDb.CreateNewInCurrentContexte(); } else { strIdAlarme = alarmeInDb.AlarmId; } alarmesTraitees.Add(alarme.Id); alarmeInDb.AlarmeParente = alarmeParente; alarmeInDb.FillFromLocalAlarmeFromMediation(alarme); alarmeInDb.AlarmId = strIdAlarme; if (alarmeInDb.AlarmId != alarme.Id) { dicMapIds[alarme.Id] = alarmeInDb.AlarmId; alarme.Id = alarmeInDb.AlarmId; } foreach (CLocalAlarme alarmeFille in alarme.Childs) { GereHierarchie(ctxEdit, alarmeFille, dicMapIds, alarmesTraitees, alarmeInDb); } }