//----------------------------------------------------------------------- public List <CInfoAlarmeAffichee> GetAlarmsInfoFromDB() { List <CInfoAlarmeAffichee> lstInfoAlarmeAffichee = new List <CInfoAlarmeAffichee>(); CListeObjetsDonnees lstAlarmes = new CListeObjetsDonnees(m_consultationEnCours.ContexteDonnee, typeof(CSpvAlarmeDonnee)); //string clauseWhere = "HasNo( AlarmEnd." + CSpvAlarm.c_champALARM_ID + " )"; /* * string clauseWhere = "Has( LienAccesAlarmeRep." + CSpvLienAccesAlarme_Rep.c_champALARMEDONNEE_ID + * " ) and LienAccesAlarmeRep.LienAccesAlarmes." + CSpvLienAccesAlarme.c_champCOMMUT + * " = 0 and HasNo( AlarmeMasquee." + CSpvAlarmeDonneeCorrelation.c_champALARMEDONNEE_ID + " )";*/ /* * string clauseWhere = "Has( LienAccesAlarmeRep." + CSpvLienAccesAlarme_Rep.c_champALARMEDONNEE_ID + * " ) and LienAccesAlarmeRep.LienAccesAlarmes." + CSpvLienAccesAlarme.c_champCOMMUT + * " = 0 and HasNo( SpvAlarme.AlarmeMasquee." + CSpvAlarmeDonneeCorrelation.c_champALARMEDONNEE_ID + " )"; */ string clauseWhere = "Has( LienAccesAlarmeRep." + CSpvLienAccesAlarme_Rep.c_champALARMEDONNEE_ID + " ) and LienAccesAlarmeRep.LienAccesAlarmes." + CSpvLienAccesAlarme.c_champCOMMUT + " = 0 and HasNo( AlarmeMasquee." + CSpvAlarmeDonneeCorrelation.c_champALARMEDONNEE_ID + " )"; lstAlarmes.Filtre = new CFiltreDataAvance(CSpvAlarmeDonnee.c_nomTable, clauseWhere); //DateTime dateNow = DateTime.Now; DateTime dateNow = CDivers.GetSysdateNotNull(); foreach (CSpvAlarmeDonnee alarme in lstAlarmes) { // DateTime MaskBriDateMin = (DateTime)alarm.GetFirstAccesAccescRep().LienAccesAlarmes.MaskBriDateMin; // DateTime MaskBriDateMax = (DateTime)alarm.GetFirstAccesAccescRep().LienAccesAlarmes.MaskBriDateMax; if (alarme.GetFirstAccesAccescRep().LienAccesAlarmes.MaskAdminDateMin <= dateNow && alarme.GetFirstAccesAccescRep().LienAccesAlarmes.MaskAdminDateMax >= dateNow) { continue; } if (alarme.GetFirstAccesAccescRep().LienAccesAlarmes.MaskBriDateMin <= dateNow && alarme.GetFirstAccesAccescRep().LienAccesAlarmes.MaskBriDateMax >= dateNow) { continue; } CInfoAlarmeAffichee infoAlarm = new CInfoAlarmeAffichee(alarme); if (m_consultationEnCours.Parametres.FormuleFiltre != null) { CContexteEvaluationExpression contexte = new CContexteEvaluationExpression(infoAlarm); CResultAErreur result = m_consultationEnCours.Parametres.FormuleFiltre.Eval(contexte); if (!Convert.ToBoolean(result.Data)) { continue; } } lstInfoAlarmeAffichee.Add(infoAlarm); } lstInfoAlarmeAffichee.Sort(new CTrieurInfoAlarmeAffichee(CSpvWin32Registre.TriConsultationAlarmeCroissant)); return(lstInfoAlarmeAffichee); }
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)); } }