Esempio n. 1
0
        //-----------------------------------------------------------------
        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);
        }
Esempio n. 2
0
        /*    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());*/
        }
Esempio n. 3
0
 public CFormConsultationAlarmeGeree(CInfoAlarmeAffichee alarmInfo, CContexteDonnee ctx)
 {
     InitializeComponent();
     m_ctxDonnee   = ctx;
     m_alarmeGeree = alarmInfo.AlarmeGeree.GetSpvAlarmGeree(m_ctxDonnee);
     Init();
 }
Esempio n. 4
0
        //-----------------------------------------------------------------------
        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);
        }
Esempio n. 5
0
        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();
        }
Esempio n. 7
0
 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);
     }
 }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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();
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        /// <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);
                    }
                }
            }
        }
Esempio n. 12
0
 public CMenuItemAvecAlarme(CInfoAlarmeAffichee infoAlarme)
 {
     Text         = infoAlarme.AlarmeGeree.Name + " / " + infoAlarme.ElementGereType + "-" + infoAlarme.ElementGereName;
     BackColor    = CSpvAlarmcouleur.GetColor((ECouleurAlarme)(int)infoAlarme.SeverityCode, CSc2iWin32DataClient.ContexteCourant);
     m_infoAlarme = infoAlarme;
 }
Esempio n. 13
0
        //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);
                    }
                }
            }
        }
Esempio n. 14
0
        //----------------------------------------------------------------------------------------------
        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;
        }
Esempio n. 15
0
        void ShowAlarmDlg(CInfoAlarmeAffichee alarmInfo)
        {
            CFormConsultationAlarmEvent alarmDlg = new CFormConsultationAlarmEvent(alarmInfo, m_consultationEnCours.ContexteDonnee);

            m_navigateur.AffichePage(alarmDlg);
        }
Esempio n. 16
0
 public CDonneesSupervisionAlarme(CInfoAlarmeAffichee info, bool bIsFromChild)
 {
     InfoAlarme  = info;
     IsFromChild = bIsFromChild;
 }
Esempio n. 17
0
        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);
                    }
                }
            }
        }
Esempio n. 18
0
        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;
                                }
                            }
                        }
                    }
                }
            }
        }