//----------------------------------------------------------------- public ArrayList GetDataToDisplay(CInfoAlarmeAffichee infoAlarme) { /* * ArrayList lst = new ArrayList(); * CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(infoAlarme); * foreach (CFormuleNommee formule in ListeColonnes) * { * object valeur = null; * if (formule.Formule != null) * { * CResultAErreur result = formule.Formule.Eval(ctxEval); * if (result) * valeur = result.Data; * else * valeur = I.T("#Error|20016"); * } * lst.Add(valeur); * } * return lst;*/ ArrayList lst = new ArrayList(); CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(infoAlarme); foreach (C2iChampExport champ in m_listeColonnes) { object valeur = champ.GetValeur(infoAlarme, null); lst.Add(valeur); } return(lst); }
/* public static ImageList GetImageListSeverity(Control listView ) * { * int rectSizeX = (int)listView.Font.Height; * int rectSizeY = (int)listView.Font.Height; * * ImageList imageListSmall = new ImageList(); * * Graphics g = listView.CreateGraphics(); * Bitmap[] bitmap; * bitmap = new Bitmap[m_AlarmColors.Length]; * * * for (int i = 0; i < m_AlarmColors.Length; i++) * { * bitmap[i] = new Bitmap(rectSizeX, rectSizeY, g); * } * * for (int z = 0; z < m_AlarmColors.Length; z++) * { * for (int i = 1; i < rectSizeY - 1; i++) * { * for (int j = 1; j < rectSizeX - 1; j++) * { * bitmap[z].SetPixel(i, j, m_AlarmColors[z]); * } * } * for (int j = 0; j < rectSizeX; j++) * { * bitmap[z].SetPixel(0, j, Color.Black); * bitmap[z].SetPixel(rectSizeY - 1, j, Color.Black); * } * for (int i = 0; i < rectSizeY ; i++) * { * bitmap[z].SetPixel(i, 0, Color.Black); * bitmap[z].SetPixel(i, rectSizeX - 1, Color.Black); * } * } * * g.Dispose(); * for (int i = 0; i < m_AlarmColors.Length; i++) * { * imageListSmall.Images.Add(bitmap[i]); * } * * return imageListSmall; * }*/ protected override void AfterItemCreation(RetrieveVirtualItemEventArgs e, object obj) { CInfoAlarmeAffichee info = obj as CInfoAlarmeAffichee; if (info.WaiteToBeAcknowledged()) { e.Item.ForeColor = Color.Red; } else { e.Item.ForeColor = Color.Black; } if (info.SeverityCode >= SmallImageList.Images.Count || info.SeverityCode < 0) { e.Item.ImageIndex = (int)EGraviteAlarmeAvecMasquage.Undetermined; } else { e.Item.ImageIndex = info.SeverityCode; } /* Console.Write("gravite = {0} alarmId = {1}", info.SeverityCode.ToString(), * info.IdSpvAlarme.ToString());*/ }
public CFormConsultationAlarmeGeree(CInfoAlarmeAffichee alarmInfo, CContexteDonnee ctx) { InitializeComponent(); m_ctxDonnee = ctx; m_alarmeGeree = alarmInfo.AlarmeGeree.GetSpvAlarmGeree(m_ctxDonnee); Init(); }
//----------------------------------------------------------------------- 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); }
void OnLstViewRetombeDoubleClick(object sender, System.EventArgs e) { int index = m_lstViewRetombe.SelectedIndices[0]; CInfoAlarmeAffichee infoAlarm = (CInfoAlarmeAffichee)m_lstViewRetombe.GetObjectFromList(index); ShowAlarmDlg(infoAlarm); }
public CFormConsultationAlarmEvent(CInfoAlarmeAffichee alarmInfo, CContexteDonnee ctx) { InitializeComponent(); m_AlarmInfo = alarmInfo; m_ctxDonnee = ctx; Init(); }
void OnLstViewEnCoursDoubleClick(object sender, System.EventArgs e) { if (m_lstViewEnCours.SelectedIndices.Count > 0) { int index = m_lstViewEnCours.SelectedIndices[0]; CInfoAlarmeAffichee infoAlarm = (CInfoAlarmeAffichee)m_lstViewEnCours.GetObjectFromList(index); ShowAlarmDlg(infoAlarm); } }
public CResultAErreur InitFromContexte(CContexteFormNavigable contexte) { CResultAErreur result = CResultAErreur.True; m_alarmInfo = contexte["ALARMINFO"] as CInfoAlarmeAffichee; if (m_alarmInfo == null) { result.EmpileErreur("No alarm info for this page"); } m_ctxDonnee = CSc2iWin32DataClient.ContexteCourant; return(result); }
internal void StartAlarme(CInfoAlarmeAffichee infoAlarme, bool bIsFromChild) { CDonneesSupervisionAlarme data = null; if (m_dicAlarmesEnCours.TryGetValue(infoAlarme.IdSpvEvtAlarme, out data)) { if (bIsFromChild) //Si c'est une alarme fille, pas besoin d'écraser l'actuelle, { return; } } data = new CDonneesSupervisionAlarme(infoAlarme, bIsFromChild); //m_dicAlarmesEnCours[infoAlarme.IdSpvEvtAlarme] = data; m_dicAlarmesEnCours[infoAlarme.IdSpvAlarmeData] = data; RecalculeGravite(); }
public List <CInfoAlarmeAffichee> GetAlarmesPourElement(CElementDeSchemaReseau element) { List <CInfoAlarmeAffichee> lst = new List <CInfoAlarmeAffichee>(); CInfoElementDeSchemaSupervise info = null; if (m_dicElementDeSchemaToInfoSupervision.TryGetValue(element.Id, out info)) { foreach (int nId in info.GetIdsAlarmesEnCours()) { CInfoAlarmeAffichee alarme = null; if (m_dicAlarmes.TryGetValue(nId, out alarme)) { lst.Add(alarme); } } } return(lst); }
/// <summary> /// Fait clignoter le voyant d'alarme lorsque c'est nécessaire et se charge /// de gérer la disparition des alarmes de la liste des retombées lorsqu'elles /// sont acquittées /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void m_timerVoyant_Tick_1(object sender, EventArgs e) { if (m_bIsClignote) { ChangeVoyant(); } nNbTimeClignote += 1; // Traitement de l'effacement des alarmes retombées et acquittées if (nNbTimeClignote == c_nBaseControleRetombee) { nNbTimeClignote = 0; for (int i = m_lstViewRetombe.GetCount() - 1; i >= 0; i--) { CInfoAlarmeAffichee infoAlarm = (CInfoAlarmeAffichee)m_lstViewRetombe.GetObjectFromList(i); if (infoAlarm != null && infoAlarm.PeutElleDisparaitre()) { m_lstViewRetombe.RemoveObjet(infoAlarm); } } } }
public CMenuItemAvecAlarme(CInfoAlarmeAffichee infoAlarme) { Text = infoAlarme.AlarmeGeree.Name + " / " + infoAlarme.ElementGereType + "-" + infoAlarme.ElementGereName; BackColor = CSpvAlarmcouleur.GetColor((ECouleurAlarme)(int)infoAlarme.SeverityCode, CSc2iWin32DataClient.ContexteCourant); m_infoAlarme = infoAlarme; }
//Initialise la base des alarmes en cours avec les alarmes de la base et les acces concernant chaque élément private void LoadAlarmesEtLiensTransForElement(string strChampDansAcces, CDictionnaireConcerne dicConcernes) { //Récupère la relation entre CSpvLienAccesAlarme et CSpvLienAccesAlarmeRep if (m_relationFromLienAlarmeToLienAlarmeRep == null) { foreach (CInfoRelation relation in CContexteDonnee.GetListeRelationsTable(CSpvLienAccesAlarme.c_nomTable)) { if (relation.TableFille == CSpvLienAccesAlarme_Rep.c_nomTable && relation.TableParente == CSpvLienAccesAlarme.c_nomTable) { m_relationFromLienAlarmeToLienAlarmeRep = relation; break; } } } List <int> lstIdsElements = new List <int>(); lstIdsElements.AddRange(dicConcernes.Keys); int nSizePaquet = 100; for (int nPaquet = 0; nPaquet < lstIdsElements.Count; nPaquet += nSizePaquet) { int nMax = Math.Min(nPaquet + nSizePaquet, lstIdsElements.Count); StringBuilder bl = new StringBuilder(); for (int nId = 0; nId < nMax; nId++) { bl.Append(lstIdsElements[nId]); bl.Append(';'); } if (bl.Length > 0) { bl.Remove(bl.Length - 1, 1); //Charge tous les Liens d'alarme pour les éléments CListeObjetsDonnees lstLiensAccesAlarme = new CListeObjetsDonnees(m_contexteDonnee, typeof(CSpvLienAccesAlarme)); lstLiensAccesAlarme.Filtre = new CFiltreDataAvance(CSpvLienAccesAlarme.c_nomTable, CSpvAccesAlarme.c_nomTable + "." + strChampDansAcces + " in (" + bl.ToString() + ")"); lstLiensAccesAlarme.AssureLectureFaite(); // Chargement des acces correspondant CListeObjetsDonnees lstAcces = lstLiensAccesAlarme.GetDependances("AccesAlarmeOne"); lstAcces.InterditLectureInDB = true; CListeObjetsDonnees lstEtatAlarme = lstLiensAccesAlarme.GetDependances(m_relationFromLienAlarmeToLienAlarmeRep); lstEtatAlarme.Filtre = new CFiltreData(CSpvLienAccesAlarme_Rep.c_champALARM_ID + " is not null"); lstEtatAlarme.AssureLectureFaite(); lstEtatAlarme.InterditLectureInDB = true; // Chargement des données alarmes CListeObjetsDonnees listAlarmesDonnees = lstEtatAlarme.GetDependances("AlarmeDonnee"); listAlarmesDonnees.AssureLectureFaite(); listAlarmesDonnees.InterditLectureInDB = true; lstLiensAccesAlarme.InterditLectureInDB = true; lstEtatAlarme.InterditLectureInDB = true; foreach (CSpvAlarmeDonnee donneeAlarme in listAlarmesDonnees) { if (donneeAlarme != null) { CInfoAlarmeAffichee info = new CInfoAlarmeAffichee(donneeAlarme); //m_dicAlarmes[info.IdSpvEvtAlarme] = info; m_dicAlarmes[info.IdSpvAlarmeData] = info; StartAlarme(info); } } foreach (CSpvLienAccesAlarme lienAlarme in lstLiensAccesAlarme) { CSpvAcces acces = lienAlarme.AccesAlarmeOne; if (acces != null) { int?nId = acces.Row[strChampDansAcces] as int?; if (nId != null) { List <CInfoElementDeSchemaSupervise> lst = null; if (dicConcernes.TryGetValue(nId.Value, out lst)) { foreach (CInfoElementDeSchemaSupervise info in lst) { info.SetConcerneParAlarmes(); if (lienAlarme.MaskAdminDateMin != null && lienAlarme.MaskBriDateMin > DateTime.Now) { if (lienAlarme.MaskAdminDateMax == null || lienAlarme.MaskAdminDateMax < DateTime.Now) { info.SetMasquageAdministrateur(lienAlarme.Id, true); } } if (lienAlarme.MaskBriDateMin != null && lienAlarme.MaskBriDateMin > DateTime.Now) { if (lienAlarme.MaskBriDateMax == null || lienAlarme.MaskBriDateMax < DateTime.Now) { info.SetMasquageBrigadier(lienAlarme.Id, true); } } } } } } } if (m_infoSchemaRacine != null) { List <CInfoElementDeSchemaSupervise> lstTmp = new List <CInfoElementDeSchemaSupervise>(); m_infoSchemaRacine.RecalculeToutLeMasquage(lstTmp); } } } }
//---------------------------------------------------------------------------------------------- private void StartAlarme(CInfoAlarmeAffichee infoAlarme) { //int nIdAlarme = infoAlarme.IdSpvEvtAlarme; int nIdAlarmeData = infoAlarme.IdSpvAlarmeData; m_dicAlarmes[nIdAlarmeData] = infoAlarme; // Traitement de l'état opérationnel des schémas CSpvAlarmeDonnee alarmeData = new CSpvAlarmeDonnee(ContexteDonnee); if (infoAlarme.SeverityCode >= (int)EGraviteAlarme.Major && alarmeData.ReadIfExists(nIdAlarmeData)) { List <CElementDeArbreOperationnel> listeNoeudsConcernes = new List <CElementDeArbreOperationnel>(); if (alarmeData.EquipId != null) { m_dicEquipementToNoeudArbreOp.TryGetValue(alarmeData.EquipId.Value, out listeNoeudsConcernes); } else if (alarmeData.SiteId != null) { m_dicSiteToNoeudArbreOp.TryGetValue(alarmeData.SiteId.Value, out listeNoeudsConcernes); } else if (alarmeData.LiaiId != null) { m_dicLiaisonToNoeudArbreOp.TryGetValue(alarmeData.LiaiId.Value, out listeNoeudsConcernes); } PropageCoefOperationnel(listeNoeudsConcernes, 0.0); } List <CInfoElementDeSchemaSupervise> lstConcernes = null; if (infoAlarme.InfoEquipement != null) { m_dicDirectementConcernesParEquipement.TryGetValue(infoAlarme.InfoEquipement.Id, out lstConcernes); } if (infoAlarme.InfoLiaison != null) { m_dicDirectementConcernesParLiaison.TryGetValue(infoAlarme.InfoLiaison.Id, out lstConcernes); } if (infoAlarme.InfoSite != null && infoAlarme.InfoSite.Id != null) { m_dicDirectementConcernesParSite.TryGetValue(infoAlarme.InfoSite.Id.Value, out lstConcernes); } Dictionary <CInfoElementDeSchemaSupervise, bool> dicConcernes = new Dictionary <CInfoElementDeSchemaSupervise, bool>(); if (lstConcernes != null) { List <CInfoElementDeSchemaSupervise> lstAPrevenir = new List <CInfoElementDeSchemaSupervise>(lstConcernes); bool bFirstNiveau = true; while (lstAPrevenir.Count != 0) { lstAPrevenir.Sort(); CInfoElementDeSchemaSupervise[] infos = lstAPrevenir.ToArray(); lstAPrevenir.Clear(); foreach (CInfoElementDeSchemaSupervise info in infos) { if (bFirstNiveau) { dicConcernes[info] = true; } info.StartAlarme(infoAlarme, false); CInfoElementDeSchemaSupervise parent = info.Parent; if (parent != null) { lstAPrevenir.Add(parent); } } bFirstNiveau = false; } if (lstConcernes.Count > 0) { Refresh(); } } List <CInfoElementDeSchemaSupervise> lst = new List <CInfoElementDeSchemaSupervise>(); lst.AddRange(dicConcernes.Keys); m_dicAlarmeToElementsConcernes[nIdAlarmeData] = lst; }
void ShowAlarmDlg(CInfoAlarmeAffichee alarmInfo) { CFormConsultationAlarmEvent alarmDlg = new CFormConsultationAlarmEvent(alarmInfo, m_consultationEnCours.ContexteDonnee); m_navigateur.AffichePage(alarmDlg); }
public CDonneesSupervisionAlarme(CInfoAlarmeAffichee info, bool bIsFromChild) { InfoAlarme = info; IsFromChild = bIsFromChild; }
public static void SendMails(List <CEvenementAlarm> lstEvents, CContexteDonnee ctxDonnee) { /* * foreach (CEvenementAlarm eventAl in lstEvents) * { * if (eventAl.CategorieMessageAlarme == ECategorieMessageAlarme.AlarmStartStop) * { * if (eventAl.EventAlarmStartStop.AlarmInfo.SeverityCode == (int)EGraviteAlarmeAvecMasquage.EndAlarm) * continue; * * CListeObjetsDonnees lstConsult = new CListeObjetsDonnees(ctxDonnee, typeof(CConsultationAlarmesEnCoursInDb)); * lstConsult.Filtre = new CFiltreDataAvance(CConsultationAlarmesEnCoursInDb.c_nomTable, * CConsultationAlarmesEnCoursInDb.c_champActiverEMail + " = 1 and Has( Emails." + * CParamlArmEC_EMail.c_champParamAlarmECId + " )", null); * * foreach (CConsultationAlarmesEnCoursInDb consult in lstConsult) * { * int id = consult.Id;//test * if (consult.Parametres.FormuleFiltre != null) * { * CContexteEvaluationExpression contexte = new CContexteEvaluationExpression(eventAl.EventAlarmStartStop.AlarmInfo); * if (!consult.Parametres.FormuleFiltre.Eval(contexte)) * continue; * } * * List<string> lstColumnNames = new List<string>(); * ArrayList arrayData = new ArrayList(); * StringBuilder stblMessage = new StringBuilder(); * string [] arrayDest; * string stSubject; * string stSender; * string st; * int i = 0; * * lstColumnNames = consult.Parametres.GetColumnNames(); * arrayData = consult.Parametres.GetDataToDisplay(eventAl.EventAlarmStartStop.AlarmInfo); * * foreach(string stColumnName in lstColumnNames) * { * st = stColumnName + " : " + arrayData[i]; * stblMessage.AppendLine(st); * i++; * } * * stSubject = I.T("Alarm @1|60000", eventAl.EventAlarmStartStop.AlarmInfo.AlarmeGeree.Name); * * arrayDest = new string[consult.Emails.Count]; * i=0; * foreach(CParamlArmEC_EMail paramlArmEC_EMail in consult.Emails) * { * arrayDest[i] = paramlArmEC_EMail.Email; * i++; * } * * IDatabaseRegistre registre = (IDatabaseRegistre)C2iFactory.GetNew2iObjetServeur(typeof(IDatabaseRegistre), ctxDonnee.IdSession); * stSender = (string)registre.GetValeurString("SENDER_ADDRESS",""); * * int[] docsArray = new int[0]; * CMailSC2I mail = new CMailSC2I(stSender, stSubject, stblMessage.ToString(), * arrayDest, docsArray); * * IExpediteurMail expediteur = (IExpediteurMail)C2iFactory.GetNewObjetForSession("CExpediteurMail", typeof(IExpediteurMail), ctxDonnee.IdSession); * CResultAErreur result = expediteur.SendMail(mail); * } * } * } * }*/ foreach (CEvenementAlarm eventAlarme in lstEvents) { if (eventAlarme.GetType() == typeof(CEvenementAlarmStartStop)) { CEvenementAlarmStartStop eventAl = (CEvenementAlarmStartStop)eventAlarme; if (eventAl.Gravite == EGraviteAlarmeAvecMasquage.EndAlarm) { continue; } CInfoAlarmeAffichee infoAlarmeAffichee = new CInfoAlarmeAffichee(eventAl); CListeObjetsDonnees lstConsult = new CListeObjetsDonnees(ctxDonnee, typeof(CConsultationAlarmesEnCoursInDb)); lstConsult.Filtre = new CFiltreDataAvance(CConsultationAlarmesEnCoursInDb.c_nomTable, CConsultationAlarmesEnCoursInDb.c_champActiverEMail + " = 1 and Has( Emails." + CParamlArmEC_EMail.c_champParamAlarmECId + " )", null); foreach (CConsultationAlarmesEnCoursInDb consult in lstConsult) { int id = consult.Id;//test if (consult.Parametres.FormuleFiltre != null) { CContexteEvaluationExpression contexte = new CContexteEvaluationExpression(infoAlarmeAffichee); if (!consult.Parametres.FormuleFiltre.Eval(contexte)) { continue; } } List <string> lstColumnNames = new List <string>(); ArrayList arrayData = new ArrayList(); StringBuilder stblMessage = new StringBuilder(); string[] arrayDest; string stSubject; string stSender; string st; int i = 0; lstColumnNames = consult.Parametres.GetColumnNames(); arrayData = consult.Parametres.GetDataToDisplay(infoAlarmeAffichee); foreach (string stColumnName in lstColumnNames) { st = stColumnName + " : " + arrayData[i]; stblMessage.AppendLine(st); i++; } stSubject = I.T("Alarm @1|60000", eventAl.NomAlarmeGeree); arrayDest = new string[consult.Emails.Count]; i = 0; foreach (CParamlArmEC_EMail paramlArmEC_EMail in consult.Emails) { arrayDest[i] = paramlArmEC_EMail.Email; i++; } IDatabaseRegistre registre = (IDatabaseRegistre)C2iFactory.GetNew2iObjetServeur(typeof(IDatabaseRegistre), ctxDonnee.IdSession); stSender = (string)registre.GetValeurString("SENDER_ADDRESS", m_strExpMailParDefaut); int[] docsArray = new int[0]; CMailSC2I mail = new CMailSC2I(stSender, stSubject, stblMessage.ToString(), arrayDest, null, null, docsArray); IExpediteurMail expediteur = (IExpediteurMail)C2iFactory.GetNewObjetForSession("CExpediteurMail", typeof(IExpediteurMail), ctxDonnee.IdSession); CResultAErreur result = expediteur.SendMail(mail); } } } }
void OnReceiveNotificationAlarmEnCours(IDonneeNotification donnee) { CDonneeNotificationAlarmes donneeAlarme = donnee as CDonneeNotificationAlarmes; if (donneeAlarme == null) { return; } CEvenementAlarm[] lstAlarmes = donneeAlarme.Alarmes; foreach (CEvenementAlarm evAl in lstAlarmes) { if (evAl is CEvenementAlarmStartStop) { CEvenementAlarmStartStop evAlarme = (CEvenementAlarmStartStop)evAl; if (IsFrequentAlarm(evAlarme)) { MAJFrequentButtonText(); continue; } CInfoAlarmeAffichee infoAlarm = new CInfoAlarmeAffichee(evAlarme); 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; } } if (evAlarme.Gravite == EGraviteAlarmeAvecMasquage.EndAlarm && evAlarme.IdAlarmeDebut > 0) { for (int i = 0; i < m_lstViewEnCours.GetCount(); i++) { infoAlarm = (CInfoAlarmeAffichee)m_lstViewEnCours.GetObjectFromList(i); if (infoAlarm != null && infoAlarm.IdSpvEvtAlarme == evAlarme.IdAlarmeDebut) { if (m_consultationEnCours.Parametres.DelaiMasquageTerminnees > 0) { infoAlarm.DateEffacement = DateTime.Now.AddMinutes(m_consultationEnCours.Parametres.DelaiMasquageTerminnees); } m_lstViewEnCours.RemoveObjet(infoAlarm); infoAlarm.DateFin = evAlarme.DateEvenementAlarme; m_lstViewRetombe.AddObject(infoAlarm, CSpvWin32Registre.TriConsultationAlarmeCroissant); break; } } } else { m_lstViewEnCours.AddObject(new CInfoAlarmeAffichee(evAlarme), CSpvWin32Registre.TriConsultationAlarmeCroissant); SetVoyantAlarme(); } } else if (evAl is CEvenementAlarmMasqueeParUneAutre) { for (int i = 0; i < m_lstViewEnCours.GetCount(); i++) { CInfoAlarmeAffichee infoAlarm = (CInfoAlarmeAffichee)m_lstViewEnCours.GetObjectFromList(i); if (infoAlarm != null && infoAlarm.IdSpvEvtAlarme == ((CEvenementAlarmMasqueeParUneAutre)evAl).AlarmStartId) { m_lstViewEnCours.RemoveObjet(infoAlarm); // infoAlarm.DateFin = evAlarme.EventAlarmRetombee.StopAlarmDate; // m_lstViewRetombe.AddObject(infoAlarm); break; } } } else if (evAl is CEvenementAlarmMask) { CEvenementAlarmMask evAlarme = (CEvenementAlarmMask)evAl; if (evAlarme.NiveauMasquage != EMasquage.NonMasque) { if (evAlarme.LocalName == (new CMaskedBy(EMaskedBy.Administrateur)).Libelle) { m_NbMaskAdm++; } else { m_NbMaskBrig++; } } else { if (evAlarme.LocalName == (new CMaskedBy(EMaskedBy.Administrateur)).Libelle) { m_NbMaskAdm--; } else { m_NbMaskBrig--; } } MAJAdminButtonText(); MAJBrigButtonText(); } else if (evAl is CEvenementAlarmAcknowledge) { CEvenementAlarmAcknowledge evAlarme = (CEvenementAlarmAcknowledge)evAl; if (evAlarme.IdAlarmeAcquittee == 0) // Acquittement de liste { if (evAlarme.IdListeAlarmeAcquittee == m_consultationEnCours.Id) // Cette liste { TraiteAquitteAlarmes(); } } else { // Acquittement d'une alarme précise bool bTrouve = false; for (int i = 0; i < m_lstViewEnCours.GetCount(); i++) { CInfoAlarmeAffichee infoAlarm = (CInfoAlarmeAffichee)m_lstViewEnCours.GetObjectFromList(i); if (infoAlarm != null && infoAlarm.IdSpvEvtAlarme == evAlarme.IdAlarmeAcquittee) { infoAlarm.EstAcquittee = true; bTrouve = true; break; } } if (!bTrouve) // l'alarme doit être dans les retombées { for (int i = 0; i < m_lstViewRetombe.GetCount(); i++) { CInfoAlarmeAffichee infoAlarm = (CInfoAlarmeAffichee)m_lstViewRetombe.GetObjectFromList(i); if (infoAlarm != null && infoAlarm.IdSpvEvtAlarme == evAlarme.IdAlarmeAcquittee) { infoAlarm.EstAcquittee = true; if (m_consultationEnCours.Parametres.DelaiMasquageTerminnees > 0) { infoAlarm.DateEffacement = DateTime.Now.AddMinutes(m_consultationEnCours.Parametres.DelaiMasquageTerminnees); } break; } } } } } } }