Пример #1
0
 /// <summary>
 /// MP : Masquage Propre
 /// MH : Masquage Hérité
 /// Cette fonction ne se pose pas de question,elle propage directement le Mh sur les filles
 /// Elles est récursive, elle propoage le MH sur les filles des filles des filles...
 /// </summary>
 private void PropageMasquageHeriteSurFilles(CParametrageFiltrageAlarmes masque)
 {
     foreach (CAlarme fille in AlarmesFilles)
     {
         fille.MasquageHerite = null;
         fille.MasquageHerite = masque;
         fille.PropageMasquageHeriteSurFilles(fille.GetMasquageApplique());
     }
 }
Пример #2
0
        /// <summary>
        /// MP : Masquage Propre
        /// MH : Masquage Hérité
        /// Règle de calcul du MH en fonction des Alarmes filles:
        ///     Avant de regarder toutes les filles, si l'Alarme en cours a un MP, on ne tient pas compte de l'état des filles
        ///     et on propage automatiquement un MH sur toutes les filles
        ///     Sinon, on regarde toutes les filles:
        ///         Si toutes les filles sont masquées (MP ou MH) on met l'Alarme en cours à MH = true;
        ///         Si une des filles n'est pas masquée, on met l'Alarme en cours à MH = false;
        ///     En d'autres termes, si toutes mes filles sont masquées, je n'ai pas de raison d'apparaître!
        /// </summary>
        private void RecalcMasquageEnCascadeFromFilles()
        {
            MasquageHerite = null;
            if (MasquagePropre != null)
            {
                // On arrête ici le calcul à partir des filles,
                // et on force la propagation du MH sur les filles
                PropageMasquageHeriteSurFilles(MasquagePropre);
                return;
            }

            foreach (CAlarme fille in AlarmesFilles)
            {
                fille.RecalcMasquageEnCascadeFromFilles();
            }
            bool bMasqueHerite = AlarmesFilles.Count > 0;
            CParametrageFiltrageAlarmes masqueLePlusPrioritaire = null;

            foreach (CAlarme alarmeFille in AlarmesFilles)
            {
                CParametrageFiltrageAlarmes masque = alarmeFille.GetMasquageApplique();
                if (masque == null)
                {
                    bMasqueHerite = false;
                    break;
                }
                else
                {
                    if (masqueLePlusPrioritaire == null ||
                        masque.CategorieMasquage.Priorite < masqueLePlusPrioritaire.CategorieMasquage.Priorite)
                    {
                        masqueLePlusPrioritaire = masque;
                    }
                }
            }
            if (bMasqueHerite)
            {
                MasquageHerite = masqueLePlusPrioritaire;
            }
        }
Пример #3
0
        //----------------------------------------------------
        /// <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);
                }
            }
        }