Пример #1
0
        //------------------------------------
        /// <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);
            }
        }
Пример #2
0
 //------------------------------------
 protected void ChangeGravite(CLocalSeveriteAlarme severite)
 {
     if (severite != m_severite)
     {
         OnChangeEtatSupervise();
     }
 }
Пример #3
0
        //-------------------------------------------------------------
        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);
        }
Пример #4
0
            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;
            }
Пример #5
0
        //---------------------------------------------------------------------
        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);
        }
Пример #6
0
        //-------------------------------------------------------------
        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);
        }