Example #1
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);
                }
            }
        }
Example #2
0
        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);
                }
            }
        }
Example #3
0
        //----------------------------------------------------
        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);
            }
        }