예제 #1
0
 protected void ChangeGravite(EGraviteAlarme gravite)
 {
     if (gravite != m_gravite)
     {
         OnChangeEtatSupervise();
     }
 }
예제 #2
0
        /// <summary>
        /// recalcul simple : s'il y a une alarme sur le fils, l'objet est en alarme
        /// </summary>
        protected virtual void RecalculeGravite()
        {
            ECouleurAlarme oldCouleurAlarme = m_couleurEnCours;

            m_gravite = EGraviteAlarme.NoAlarm;
            foreach (CDonneesSupervisionAlarme donnee in m_dicAlarmesEnCours.Values)
            {
                EGraviteAlarme graviteAlarme = CGraviteAlarme.ConvertFrom((EGraviteAlarmeAvecMasquage)donnee.InfoAlarme.SeverityCode);
                m_gravite = (EGraviteAlarme)Math.Max((int)m_gravite, (int)graviteAlarme);
            }
            switch (m_gravite)
            {
            case EGraviteAlarme.NoAlarm:
                m_couleurEnCours = ECouleurAlarme.NoAlarm;
                break;

            case EGraviteAlarme.Warning:
                m_couleurEnCours = ECouleurAlarme.Warning;
                break;

            case EGraviteAlarme.Undetermined:
                m_couleurEnCours = ECouleurAlarme.Undetermined;
                break;

            case EGraviteAlarme.Minor:
                m_couleurEnCours = ECouleurAlarme.Minor;
                break;

            case EGraviteAlarme.Major:
                m_couleurEnCours = ECouleurAlarme.Major;
                break;

            case EGraviteAlarme.Critical:
                m_couleurEnCours = ECouleurAlarme.Critical;
                break;
            }
            if (m_couleurEnCours != oldCouleurAlarme)
            {
                m_base.OnChangementEtatSupervise(this);
            }
        }