//------------------------------------ /// <summary> /// recalcul simple : s'il y a une alarme sur le fils, l'objet est en alarme /// </summary> protected virtual void RecalculeGraviteEtMasquage() { CLocalSeveriteAlarme oldSeverite = m_severite; CLocalSeveriteAlarme severite = null; m_etatOperationel = EEtatOperationnelSchema.OK; m_bHasMasquage = false; foreach (CDonneesSupervisionAlarme donnee in m_dicAlarmesEnCours.Values) { if (donnee.LocalAlarme.MasquageApplique == null || donnee.LocalAlarme.MasquageApplique.Priorite <= m_base.NiveauMasquageMaxAffiche) { if (severite == null || donnee.LocalAlarme.Severite.Priorite > severite.Priorite) { severite = donnee.LocalAlarme.TypeAlarme.Severite; } if (donnee.LocalAlarme.IsHS && !donnee.IsFromChild) { m_etatOperationel = EEtatOperationnelSchema.HS; } } else { m_bHasMasquage = true; } } m_severite = severite; if (oldSeverite != m_severite) { m_base.OnChangementEtatSupervise(this); } }
//------------------------------------ protected void ChangeGravite(CLocalSeveriteAlarme severite) { if (severite != m_severite) { OnChangeEtatSupervise(); } }
//------------------------------------------------------------- public CLocalSeveriteAlarme GetTypeForSupervision(CMemoryDb database) { if (database == null) { database = CMemoryDbPourSupervision.GetMemoryDb(ContexteDonnee); } CLocalSeveriteAlarme severite = new CLocalSeveriteAlarme(database); if (!severite.ReadIfExist(Id.ToString(), false)) { severite.CreateNew(Id.ToString()); } else if (!severite.IsToRead()) { return(severite); } severite.Row[CMemoryDb.c_champIsToRead] = false; severite.Libelle = Libelle; severite.Code = Code; severite.Priorite = Priorite; severite.CouleurInt = CouleurInt; return(severite); }
public CMenuItemAvecAlarme(CLocalAlarme infoAlarme) { Text = infoAlarme.Libelle;//17082011 +" / " + infoAlarme.ElementGereType + "-" + infoAlarme.ElementGereName; CLocalSeveriteAlarme sev = infoAlarme.TypeAlarme.Severite; BackColor = sev != null ? sev.Couleur : Color.White; m_infoAlarme = infoAlarme; }
//--------------------------------------------------------------------- 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); }
//------------------------------------------------------------- public CLocalTypeAlarme GetTypeForSupervision(CMemoryDb database, bool bWithChilds) { if (database == null) { database = CMemoryDbPourSupervision.GetMemoryDb(ContexteDonnee); } CLocalTypeAlarme typeParent = null; if (TypeParent != null) { typeParent = TypeParent.GetTypeForSupervision(database, false); } CLocalTypeAlarme typeAlarme = new CLocalTypeAlarme(database); if (!typeAlarme.ReadIfExist(Id.ToString(), false)) { typeAlarme.CreateNew(Id.ToString()); } else if (!typeAlarme.IsToRead()) { return(typeAlarme); } typeAlarme.Row[CMemoryDb.c_champIsToRead] = false; typeAlarme.Libelle = Libelle; typeAlarme.ModeCalculEtat = ModeCalculEtatParent.Code; typeAlarme.ActionsSurParent = FormuleCalculActionsSurParent; typeAlarme.EtatDefaut = EtatInitial.Code; typeAlarme.TypeParent = typeParent; typeAlarme.RegrouperSurLaCle = RegrouperSurLaCle; typeAlarme.FormuleLibelle = FormuleCalculLibelle; typeAlarme.ActionsSurParent = FormuleCalculActionsSurParent; typeAlarme.AAcquitter = AAcquitter; typeAlarme.TypeElementSupervise = TypeElementSupervise.Code; CLocalSeveriteAlarme severite = null; if (Severite != null) { severite = Severite.GetTypeForSupervision(database); } typeAlarme.Severite = severite; foreach (CRelationTypeAlarme_ChampCustom rel in RelationsChampsCustomDefinis) { if (rel.ChampCustom != null && rel.ChampCustom.Id > 0) { CLocalChampTypeAlarme champ = GetChampTypeAlarme(database, rel.ChampCustom); CLocalRelationTypeAlarmeChampAlarme relLocale = new CLocalRelationTypeAlarmeChampAlarme(database); if (!relLocale.ReadIfExist(rel.Id.ToString())) { relLocale.CreateNew(rel.Id.ToString()); relLocale.Champ = champ; relLocale.TypeAlarme = typeAlarme; relLocale.IsKey = rel.IsKey; } } } if (bWithChilds) { foreach (CTypeAlarme typeChild in TypesFils) { CLocalTypeAlarme typeFils = typeChild.GetTypeForSupervision(database, true); typeFils.TypeParent = typeAlarme; } } return(typeAlarme); }