private void FillTrapInfo() { string stTrap; string stInfo; int indx; CDivers div = new CDivers(); m_lstTrapInfo.Clear(); if (m_stAlarmCl.CompareTo("TRAPG") != 0 && m_stAlarmCl.CompareTo("TRAPS") != 0) { return; } if (m_stBindingVarInfo.Length == 0) { indx = Info.IndexOf(m_subseparator); stTrap = Info.Substring(indx + 1);//skip "TRAP SNMP;" } else { stTrap = m_stBindingVarInfo; } indx = 0; while (indx >= 0) { stInfo = div.Extract(stTrap, ref indx, m_subseparator); if (indx > 0) { m_lstTrapInfo.Add(stInfo); } } }
//----------------------------------------------------------------------- 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)); } }
private void ReadData() { using (CContexteDonnee contexte = new CContexteDonnee(0, true, false)) { CSpvEvenementReseau evt; if (m_spvAlarm == null) // Init. à partir de l'événement réseau { evt = new CSpvEvenementReseau(contexte); if (evt.ReadIfExists(m_nIdSpvEvtAlarme)) { m_spvAlarm = evt.SpvAlarme; } else { return; } } else { evt = m_spvAlarm.EvenementDebut; } CDivers div = new CDivers(); m_lstTrapInfo = new List <string>(); m_lstInfoClients = new List <CInfoClientAlarmeAffichee>(); m_lstInfoServices = new List <CInfoServiceAlarmeAffichee>(); m_nIdAlarmData = m_spvAlarm.Id; m_InfoAlarmGeree = new CInfoAlarmeGereeAffichee(); if (evt.SpvAlarmgeree != null) { m_InfoAlarmGeree.Id = (int)evt.SpvAlarmgeree.Id; m_InfoAlarmGeree.Name = evt.SpvAlarmgeree.Alarmgeree_Name; } if (m_spvAlarm.SpvSite != null) { if (m_InfoSite == null) { m_InfoSite = new CInfoSiteAlarmeAffichee(); } m_InfoSite.Id = (int)m_spvAlarm.SpvSite.Id; m_InfoSite.Name = m_spvAlarm.SpvSite.SiteNom; if (m_spvAlarm.SpvSite.TypeSite != null) { m_InfoSite.TypeName = m_spvAlarm.SpvSite.TypeSite.TypeSiteNom; } } else if (m_spvAlarm.SpvEquip != null) { m_InfoEquip = new CInfoEquipementAlarmeAffichee(); m_InfoEquip.Id = (int)m_spvAlarm.EquipId; m_InfoEquip.TypeName = m_spvAlarm.SpvEquip.TypeEquipement.Libelle; m_InfoEquip.Name = m_spvAlarm.SpvEquip.CommentairePourSituer; } else if (m_spvAlarm.SpvLiai != null) { m_InfoLiai = new CInfoLiaiAlarmeAffichee(); m_InfoLiai.Id = (int)m_spvAlarm.LiaiId; m_InfoLiai.TypeName = m_spvAlarm.SpvLiai.Typeliaison.Libelle; m_InfoLiai.Name = m_spvAlarm.SpvLiai.NomComplet; } //if (m_InfoSite == null) // m_InfoSite = new CInfoSiteAlarmeAffichee(); m_nIddeb = evt.Id; m_stAlarmCl = evt.AlarmCategory; m_nNumObj = evt.AlarmNumObj; m_InfoAlarmGeree.CodeAlarmEvent = (EAlarmEvent)m_spvAlarm.CodeEvenementX733; if (evt.TypeEvenementReseau == ETypeEvenementReseau.DebutAlarme) { m_AlarmDate = m_spvAlarm.DateDebut; m_StartAlarmDate = m_AlarmDate; } else { m_AlarmDate = (System.DateTime)m_spvAlarm.DateFin; m_StopAlarmDate = m_AlarmDate; m_StartAlarmDate = m_spvAlarm.DateDebut; } m_nGrave = m_spvAlarm.CodeGravite; m_stNSeuil = m_spvAlarm.NomSeuilAlarme; m_nVSeuil = m_spvAlarm.ValeurSeuilAlarme; m_stNumal = evt.AlarmNumAl; m_nTexte = evt.CodeAlarmNature; m_stCommentaire = m_spvAlarm.Commententaire; m_stInfo = evt.AlarmInfo; if (m_spvAlarm.SpvLienAccesAlarme != null) { m_bAAcquitter = (bool)m_spvAlarm.SpvLienAccesAlarme.Acquitter; m_bSonne = (bool)m_spvAlarm.SpvLienAccesAlarme.SonActive; } if (evt.SpvAlarmgeree != null) { m_InfoAlarmGeree.CodeRingType = evt.SpvAlarmgeree.CodeAlarmgereeTypeSon; } m_bCommut = evt.AlarmCommut; m_nIdSpvEvtAlarme = evt.Id; if (evt.ElementGereNomSite != null && evt.ElementGereNomSite.Length > 0) { if (m_InfoSite == null) { m_InfoSite = new CInfoSiteAlarmeAffichee(); } m_InfoSite.Name = evt.ElementGereNomSite; } m_InfoAlarmGeree.Name = m_spvAlarm.NomAlarmeGeree; //string stProgConcNom = m_spvAlarm.ProgrammesConcernes; if (m_spvAlarm.ServicesConcernes != null) { foreach (System.Int32 nServiceId in m_spvAlarm.ServicesConcernes) { CInfoServiceAlarmeAffichee serviceAff = new CInfoServiceAlarmeAffichee(); serviceAff.Id = nServiceId; CSpvSchemaReseau service = serviceAff.GetSpvService(contexte); serviceAff.Name = service.Libelle; m_lstInfoServices.Add(serviceAff); } } if (m_spvAlarm.ClientsConcernes != null) { foreach (System.Int32 nClientId in m_spvAlarm.ClientsConcernes) { CInfoClientAlarmeAffichee clientAff = new CInfoClientAlarmeAffichee(); clientAff.Id = nClientId; CSpvClient client = clientAff.GetSpvClient(contexte); clientAff.Name = client.CLIENT_NOM; m_lstInfoClients.Add(clientAff); } } if (m_spvAlarm.ProgsOper != null) { CInfoServiceAlarmeAffichee infoService; for (int i = 0; i < m_lstInfoServices.Count; i++) { infoService = m_lstInfoServices[i]; if (m_spvAlarm.ProgsOper.Length > i) { infoService.EtatOper = m_spvAlarm.ProgsOper[i]; } } } m_stBindingVarInfo = m_spvAlarm.GetBindingVarInfo(); FillTrapInfo(); //m_bAcquittee = (m_spvAlarm.Acquittee == null) ? false : m_spvAlarm.Acquittee; m_bAcquittee = m_spvAlarm.Acquittee; m_bLectureFaite = true; } }
public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte) { CResultAErreur result = base.TraitementAvantSauvegarde(contexte); if (!result) { return(result); } DataTable table = contexte.Tables[GetNomTable()]; if (table == null) { return(result); } List <DataRow> lstCrees = (List <DataRow>)table.ExtendedProperties[CDivers.c_cleRowCrees]; if (lstCrees != null) { table.ExtendedProperties.Clear(); } lstCrees = new List <DataRow>(); ArrayList lstRows = new System.Collections.ArrayList(table.Rows); foreach (DataRow row in lstRows) { if (row.RowState != DataRowState.Unchanged) { CSpvSite spvSite = new CSpvSite(row); if (row.RowState == DataRowState.Added) { CSpvSite_Rep spvSiteRep = new CSpvSite_Rep(contexte); if (!spvSiteRep.ReadIfExists(spvSite.Id)) { spvSiteRep.CreateNewInCurrentContexte(new object[] { spvSite.Id }); spvSiteRep.CodeEtatOperationnel = (Int32?)EEtatOperationnel.OK; spvSiteRep.SpvSite = spvSite; lstCrees.Add(row); } } else if (row.RowState == DataRowState.Modified) { string oldDomaine = CDivers.DbNullValue(row[CSpvSite.c_champSITE_DOMAINE, DataRowVersion.Original], null); string oldEM = CDivers.DbNullValue(row[CSpvSite.c_champSITE_EMNAME, DataRowVersion.Original], null); string newDomaine = spvSite.DomaineIP; string newEM = spvSite.EmName; if (((oldDomaine == null || oldEM == null) && newDomaine != null && newEM != null) || (oldDomaine != newDomaine || oldEM != newEM) || ((newDomaine == null || newEM == null) && oldDomaine != null && oldEM != null)) { CSpvMessem messEM = new CSpvMessem(contexte); messEM.CreateNewInCurrentContexte(); messEM.FormatMessModSite(spvSite.Id); } } else if (row.RowState == DataRowState.Deleted) { Int32 nId = (Int32)spvSite.Row[CSpvSite.c_champSITE_ID, DataRowVersion.Original]; if (nId == CSpvSite.c_SiteFuturocom) { result.EmpileErreur(I.T("FUTUROCOM site could not be deleted|50017")); } if (result) { CSpvMessem messEM = new CSpvMessem(contexte); messEM.CreateNewInCurrentContexte(); messEM.FormatMessDelSite((Int32)row[CSpvSite.c_champSITE_ID, DataRowVersion.Original]); } } } } table.ExtendedProperties.Add(CDivers.c_cleRowCrees, lstCrees); return(result); }