Ejemplo n.º 1
0
        public static EGraviteAlarme ConvertFrom(EGraviteAlarmeAvecMasquage gravite)
        {
            switch (gravite)
            {
            case EGraviteAlarmeAvecMasquage.EndAlarm:
                return(EGraviteAlarme.NoAlarm);

            case EGraviteAlarmeAvecMasquage.MaskBrig:
                return(EGraviteAlarme.NoAlarm);

            case EGraviteAlarmeAvecMasquage.MaskAdmin:
                return(EGraviteAlarme.NoAlarm);

            case EGraviteAlarmeAvecMasquage.Warning:
                return(EGraviteAlarme.Warning);

            case EGraviteAlarmeAvecMasquage.Undetermined:
                return(EGraviteAlarme.Undetermined);

            case EGraviteAlarmeAvecMasquage.Minor:
                return(EGraviteAlarme.Minor);

            case EGraviteAlarmeAvecMasquage.Major:
                return(EGraviteAlarme.Major);

            case EGraviteAlarmeAvecMasquage.Critical:
                return(EGraviteAlarme.Critical);
            }
            return(EGraviteAlarme.NoAlarm);
        }
Ejemplo n.º 2
0
        //----------------------------------------------------------------------------------------------
        private void MaskAlarme(CEvenementAlarmMask evenement)
        {
            if (evenement.IdLienAccesAlarme <= 0 || evenement.DetailMasquage == null)
            {
                return;
            }
            CDictionnaireConcerne dic = null;
            int nIdElement            = 0;

            if (evenement.IdSite != null)
            {
                nIdElement = evenement.IdSite.Value;
                dic        = m_dicDirectementConcernesParSite;
            }
            if (evenement.IdEquipement != null)
            {
                nIdElement = evenement.IdEquipement.Value;
                dic        = m_dicDirectementConcernesParEquipement;
            }
            if (evenement.IdLiaison != null)
            {
                nIdElement = evenement.IdLiaison.Value;
                dic        = m_dicDirectementConcernesParLiaison;
            }
            List <CInfoElementDeSchemaSupervise> lst     = null;
            EGraviteAlarmeAvecMasquage           gravite = (EGraviteAlarmeAvecMasquage)evenement.NiveauMasquage;

            if (dic.TryGetValue((int)nIdElement, out lst))
            {
                List <CInfoElementDeSchemaSupervise> lstAPrevenir = new List <CInfoElementDeSchemaSupervise>(lst);
                while (lstAPrevenir.Count != 0)
                {
                    lstAPrevenir.Sort();
                    CInfoElementDeSchemaSupervise[] infos = lstAPrevenir.ToArray();
                    lstAPrevenir.Clear();
                    foreach (CInfoElementDeSchemaSupervise info in infos)
                    {
                        switch (evenement.DetailMasquage)
                        {
                        case EEvenementMasquage.DebutMasquageAdministrateur:
                            info.SetMasquageAdministrateur(evenement.IdLienAccesAlarme, true);
                            break;

                        case EEvenementMasquage.FinMasquageAdministrateur:
                            info.SetMasquageAdministrateur(evenement.IdLienAccesAlarme, false);
                            break;

                        case EEvenementMasquage.DebutMasquageBrigadier:
                            info.SetMasquageBrigadier(evenement.IdLienAccesAlarme, true);
                            break;

                        case EEvenementMasquage.FinMasquageBrigadier:
                            info.SetMasquageBrigadier(evenement.IdLienAccesAlarme, false);
                            break;
                        }
                        CInfoElementDeSchemaSupervise parent = info.Parent;
                        if (parent != null)
                        {
                            lstAPrevenir.Add(parent);
                        }
                    }
                }
                if (lst.Count != 0 && m_infoSchemaRacine != null)
                {
                    List <CInfoElementDeSchemaSupervise> lstModifs = new List <CInfoElementDeSchemaSupervise>();
                    m_infoSchemaRacine.RecalculeToutLeMasquage(lstModifs);
                    lock (typeof(CLockerRefresh))
                    {
                        foreach (CInfoElementDeSchemaSupervise info in lstModifs)
                        {
                            if (info.IdElementDeSchema != null)
                            {
                                m_dicChangesDepuisDernierRefresh[info.IdElementDeSchema.Value] = true;
                            }
                        }
                    }
                    Refresh();
                }
            }
        }
Ejemplo n.º 3
0
        public CMessageAlarmeNotification(string strMessage)
        {
            String[] strDonnees = strMessage.Split('#');
            m_nCodeMessage = (ECategorieMessageAlarme)int.Parse(strDonnees[(int)EChampsMessageAlarme.CodeMessage]);
            string[] strTempArray;

            try
            {
                switch (m_nCodeMessage)
                {
                case ECategorieMessageAlarme.AlarmStartStop:
                    m_nIdEvtAlarme     = int.Parse(strDonnees[(int)EChampsMessageAlarme.IDEvtAlarme]);
                    m_nIdAlarmData     = int.Parse(strDonnees[(int)EChampsMessageAlarme.IDAlarmData]);
                    m_nIdAlarmeGeree   = int.Parse(strDonnees[(int)EChampsMessageAlarme.IDAlarmeGeree]);
                    m_nIdObjetConcerne = int.Parse(strDonnees[(int)EChampsMessageAlarme.IDObjetEnAlarme]);

                    m_TypeObjetConcerne = (ETypeObjetEnAlarme)
                                          int.Parse(strDonnees[(int)EChampsMessageAlarme.TypeObjetEnAlarme]);

                    switch (m_TypeObjetConcerne)
                    {
                    case ETypeObjetEnAlarme.Equipement:
                        m_nIdEquipement = m_nIdObjetConcerne;
                        break;

                    case ETypeObjetEnAlarme.Site:
                        m_nIdSite = m_nIdObjetConcerne;
                        break;

                    case ETypeObjetEnAlarme.Liaison:
                        m_nIdLiaison = m_nIdObjetConcerne;
                        break;
                    }

                    if (int.TryParse(strDonnees[(int)EChampsMessageAlarme.IDDebutAlarme], out m_nTemp))
                    {
                        m_nIdDebutAlarme = m_nTemp;
                    }

                    m_strNomAlarmeGeree            = strDonnees[(int)EChampsMessageAlarme.NomAlarmeGeree];
                    m_strClasseAlarme              = strDonnees[(int)EChampsMessageAlarme.ClasseAlarme];
                    m_nNumeroObjetDeCollecteOuTrap =
                        CDivers.ConvertToint(strDonnees[(int)EChampsMessageAlarme.NumeroObjetDeCollecteOuTrap], 0);

                    m_TypeEvenementAlarme =
                        (EAlarmEvent)int.Parse(strDonnees[(int)EChampsMessageAlarme.TypeAlarmeX733]);

                    m_DateEvenementAlarme = DateTime.ParseExact(strDonnees[(int)EChampsMessageAlarme.DateAlarme],
                                                                "yyyy MM dd HH:mm:ss", null);
                    m_GraviteAlarme = (EGraviteAlarmeAvecMasquage)
                                      int.Parse(strDonnees[(int)EChampsMessageAlarme.Gravite]);

                    m_strNomSeuil  = strDonnees[(int)EChampsMessageAlarme.NomSeuil];
                    m_nValeurSeuil = CDivers.ConvertToint(strDonnees[(int)EChampsMessageAlarme.ValeurSeuil], 0);

                    m_strNumeroSortieAlarmeOuIP = strDonnees[(int)EChampsMessageAlarme.NumeroSortieAlarmeOuIP];

                    m_NatureAlarme         = (EAlarmNature)int.Parse(strDonnees[(int)EChampsMessageAlarme.NatureAlarme]);
                    m_strCommentaire       = strDonnees[(int)EChampsMessageAlarme.CommentaireAlarmeGeree];
                    m_strInfoAdditionnelle = strDonnees[(int)EChampsMessageAlarme.InformationAdditionnelle];
                    if (strDonnees[(int)EChampsMessageAlarme.IndicateurAAcquitter] == "")
                    {
                        m_bAAcquitter = false;
                    }
                    else
                    {
                        m_bAAcquitter = System.Convert.ToBoolean(int.Parse(strDonnees[(int)EChampsMessageAlarme.IndicateurAAcquitter]));
                    }
                    if (strDonnees[(int)EChampsMessageAlarme.IndicateurActiverSonnerie] == "")
                    {
                        m_bSonner = false;
                    }
                    else
                    {
                        m_bSonner = System.Convert.ToBoolean(int.Parse(strDonnees[(int)EChampsMessageAlarme.IndicateurActiverSonnerie]));
                    }
                    m_TypeSonnerie         = (ETypeSon)int.Parse(strDonnees[(int)EChampsMessageAlarme.TypeSonnerie]);
                    m_bPositionCommutateur =
                        System.Convert.ToBoolean(int.Parse(strDonnees[(int)EChampsMessageAlarme.IndicateurAlarmeOuCommutateur]));
                    m_strNomSite      = strDonnees[(int)EChampsMessageAlarme.NomDuSite];
                    m_strNomTypeObjet = strDonnees[(int)EChampsMessageAlarme.NomDuType];
                    m_strNomObjet     = strDonnees[(int)EChampsMessageAlarme.NomElement];

                    string   strServicesConcernes = strDonnees[(int)EChampsMessageAlarme.NomService];
                    string[] strSrv, strNomSrv, strTemp;
                    int[]    nIdSrv;
                    strSrv = strServicesConcernes.Split(new char[] { cSeparateur },
                                                        StringSplitOptions.RemoveEmptyEntries);
                    nIdSrv    = new int[strSrv.Length];
                    strNomSrv = new String[strSrv.Length];
                    for (int i = 0; i < strSrv.Length; i++)
                    {
                        strTemp      = strSrv[i].Split(new char[] { cSousSep });
                        nIdSrv[i]    = Convert.ToInt32(strTemp[0]);
                        strNomSrv[i] = strTemp[1];
                    }
                    m_IdServicesConcernes = nIdSrv;
                    m_ServicesConcernes   = strNomSrv;

                    m_strNomClientsConcernes = strDonnees[(int)EChampsMessageAlarme.NomClient];
                    if (m_strNomClientsConcernes.Contains(strSeparateur))
                    {
                        m_ClientsConcernes = m_strNomClientsConcernes.Split(new char[] { cSeparateur },
                                                                            StringSplitOptions.RemoveEmptyEntries);
                    }

                    m_strEtatServices = strDonnees[(int)EChampsMessageAlarme.EtatOperationnelService];
                    if (m_strEtatServices.Contains(strSeparateur) || m_strEtatServices.Length > 0)
                    {
                        strTempArray = m_strEtatServices.Split(new char[] { cSeparateur },
                                                               StringSplitOptions.RemoveEmptyEntries);
                        m_EtatServices = new double[strTempArray.Length];
                        for (int i = 0; i < strTempArray.Length; i++)
                        {
                            m_EtatServices[i] = double.Parse(strTempArray[i]);
                        }
                    }
                    m_strEtatsServices = strDonnees[(int)EChampsMessageAlarme.EtatOperationnelTousServices];
                    m_strVariablesTrap = strDonnees[(int)EChampsMessageAlarme.VariablesTrap];

                    if (m_strVariablesTrap.Length > 0 && m_strVariablesTrap.Substring(0, 9) == "Trap SNMP")
                    {
                        // Dans ce cas, le format est le suivant :
                        // Trap SNMP : EquipId;variables traps séparées par";"
                        // exemple : Trap SNMP : 8601;.1.3.6.1.4.1,i,0;.1.3.6.1.4.1.9485.1.0,i,3;
                        int nPos = m_strVariablesTrap.IndexOf(cSeparateur);
                        m_strVariablesTrap = m_strVariablesTrap.Substring(nPos + 1);
                        if (m_strVariablesTrap.Length > 0)
                        {
                            m_VariablesTrap = m_strVariablesTrap.Split(cSeparateur);
                        }
                    }

                    break;

                case ECategorieMessageAlarme.AcquittementListeAlarme:
                    m_nIdEvtAlarme            = int.Parse(strDonnees[(int)EChampsMessageAcquittementListe.IDAlarme]);
                    m_nIdListeAlarmeAcquittee = int.Parse(strDonnees[(int)EChampsMessageAcquittementListe.IDListeAlarme]);

                    break;

                case ECategorieMessageAlarme.AlarmMasqueeParUneAutre:
                    m_nIdEvtAlarme     = int.Parse(strDonnees[(int)EChampsMessageAlarmeFille.IDAlarme]);
                    m_nIdAlarmeGeree   = int.Parse(strDonnees[(int)EChampsMessageAlarmeFille.IDAlarmeGeree]);
                    m_nIdObjetConcerne = int.Parse(strDonnees[(int)EChampsMessageAlarmeFille.IDObjetEnAlarme]);

                    switch (m_TypeObjetConcerne)
                    {
                    case ETypeObjetEnAlarme.Equipement:
                        m_nIdEquipement = m_nIdObjetConcerne;
                        break;

                    case ETypeObjetEnAlarme.Site:
                        m_nIdSite = m_nIdObjetConcerne;
                        break;

                    case ETypeObjetEnAlarme.Liaison:
                        m_nIdLiaison = m_nIdObjetConcerne;
                        break;
                    }

                    if (int.TryParse(strDonnees[(int)EChampsMessageAlarmeFille.TypeObjetEnAlarme], out m_nTemp))
                    {
                        m_TypeObjetConcerne = (ETypeObjetEnAlarme)m_nTemp;
                    }
                    m_strClasseAlarme = strDonnees[(int)EChampsMessageAlarmeFille.ClasseAlarme];
                    m_nNumeroObjetDeCollecteOuTrap = int.Parse(strDonnees[(int)EChampsMessageAlarmeFille.NumeroObjetDeCollecteOuTrap]);
                    m_strNumeroSortieAlarmeOuIP    = strDonnees[(int)EChampsMessageAlarmeFille.NumeroSortieAlarmeOuIP];
                    m_strEtatsServices             = strDonnees[(int)EChampsMessageAlarmeFille.EtatOperationnelTousServices];
                    m_DateRetombeeFille            = CDivers.GetSysdateNotNull();

                    break;

                case ECategorieMessageAlarme.MasquageAccesAlarme:
                    m_nIdObjetConcerne = int.Parse(strDonnees[(int)EChampsMasquageAlarme.IDObjetConcerne]);

                    m_TypeObjetConcerne =
                        (ETypeObjetEnAlarme)int.Parse(strDonnees[(int)EChampsMasquageAlarme.TypeObjetConcerne]);

                    switch (m_TypeObjetConcerne)
                    {
                    case ETypeObjetEnAlarme.Equipement:
                        m_nIdEquipement = m_nIdObjetConcerne;
                        break;

                    case ETypeObjetEnAlarme.Site:
                        m_nIdSite = m_nIdObjetConcerne;
                        break;

                    case ETypeObjetEnAlarme.Liaison:
                        m_nIdLiaison = m_nIdObjetConcerne;
                        break;
                    }

                    m_strClasseAlarme = strDonnees[(int)EChampsMasquageAlarme.ClasseAlarme];
                    m_nNumeroObjetDeCollecteOuTrap =
                        int.Parse(strDonnees[(int)EChampsMasquageAlarme.NumeroObjetDeCollecteOuTrap]);

                    m_EvenementMasquage = (EEvenementMasquage)
                                          int.Parse(strDonnees[(int)EChampsMasquageAlarme.EvenementMasquage]);

                    m_nIdLienAccesAlarme =
                        int.Parse(strDonnees[(int)EChampsMasquageAlarme.IdLienAccesAlarme]);

                    m_strEtatsServices = strDonnees[(int)EChampsMasquageAlarme.EtatOperationnelTousServices];

                    break;

                default:
                    m_bMessagePourEM = true;
                    break;
                }
            }
            catch (Exception e)
            {
                throw new Exception(I.T("Error in decoding MESSALRM message (@1)|50002", e.Message));
            }
        }