コード例 #1
0
ファイル: CAlarmeServeur.cs プロジェクト: ykebaili/Timos
        //-------------------------------------------------------------------
        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);
            }
            ArrayList lst = new ArrayList(table.Rows);
            CNotificationModificationsAlarme notif = contexte.ExtendedProperties[c_cleNotification] as CNotificationModificationsAlarme;

            if (notif == null)
            {
                notif = new CNotificationModificationsAlarme(IdSession);
                contexte.ExtendedProperties[c_cleNotification] = notif;
            }

            foreach (DataRow row in lst)
            {
                if (row.RowState == DataRowState.Added || row.RowState == DataRowState.Modified)
                {
                    notif.AddModifiedAlarm(new CAlarme(row));
                }
            }
            return(result);
        }
コード例 #2
0
        //-----------------------------------------------------------------------------------
        void OnReceiveNotification(IDonneeNotification donnee)
        {
            CNotificationModificationsAlarme notification = donnee as CNotificationModificationsAlarme;

            if (notification == null)
            {
                return;
            }
            lock (typeof(CLockerNotificationAlarmes))
            {
                TraiteNotification(notification);
            }
        }
コード例 #3
0
ファイル: CAlarmeServeur.cs プロジェクト: ykebaili/Timos
        public override CResultAErreur TraitementApresSauvegarde(CContexteDonnee contexte, bool bOperationReussie)
        {
            CResultAErreur result = base.TraitementApresSauvegarde(contexte, bOperationReussie);

            if (result)
            {
                CNotificationModificationsAlarme notif = contexte.ExtendedProperties[c_cleNotification] as CNotificationModificationsAlarme;
                if (notif != null)
                {
                    CEnvoyeurNotification.EnvoieNotifications(new IDonneeNotification[] { notif });
                    contexte.ExtendedProperties.Remove(c_cleNotification);
                }
            }
            return(result);
        }
コード例 #4
0
        //-----------------------------------------------------------------------------------
        private void TraiteNotification(CNotificationModificationsAlarme notification)
        {
            HashSet <string> tableAlarmeAvant = UpdateNombreAlarmesNonAcquittees();

            // Mise à jour des Alarmes
            CListeEntitesDeMemoryDb <CLocalAlarme> listeAlaremsMaj = new CListeEntitesDeMemoryDb <CLocalAlarme>(notification.MemoryDb);

            m_dataBase.AcceptChanges();
            foreach (CLocalAlarme alarmeAjoutModif in listeAlaremsMaj)
            {
                if (alarmeAjoutModif.Parent == null)
                {
                    CLocalAlarme alrm = m_dataBase.ImporteObjet(alarmeAjoutModif, true, true) as CLocalAlarme;

                    /*if (alrm != null)
                     *  alrm.Row.Row.SetModified();*/
                }
            }

            m_tableauAlarmesEnCours.UpdateDataBase(m_dataBase);
            m_tableauAlarmesRetombees.UpdateDataBase(m_dataBase);

            HashSet <string> tableAlarmeApres = UpdateNombreAlarmesNonAcquittees();

            bool bSonnerie = false;

            foreach (string strIdAlarme in tableAlarmeApres)
            {
                if (!tableAlarmeAvant.Contains(strIdAlarme))
                {
                    bSonnerie = true;
                    break;
                }
            }

            if (bSonnerie)
            {
                StartSonnerie();
            }
            else
            {
                StopSonnerie();
            }
        }
コード例 #5
0
        //----------------------------------------------------------------------------------------------
        // Réception des notifications d'alarmes ici
        void m_recepteurAlarme_Notification(IDonneeNotification donnee)
        {
            CNotificationModificationsAlarme notificationAlarme = donnee as CNotificationModificationsAlarme;

            if (notificationAlarme == null)
            {
                return;
            }

            CListeEntitesDeMemoryDb <CLocalAlarme> lstAlarmes = new CListeEntitesDeMemoryDb <CLocalAlarme>(notificationAlarme.MemoryDb);

            foreach (CLocalAlarme alarme in lstAlarmes)
            {
                if (alarme.Childs.Count() == 0)
                {
                    if (alarme.DateFin == null)
                    {
                        StartAlarme(alarme);
                    }
                    else
                    {
                        StopAlarme(alarme);
                    }
                }
            }

            /*
             * CEvenementAlarm[] lstAlarmes = donneeAlarme.Alarmes;
             * foreach (CEvenementAlarm evAlarme in lstAlarmes)
             * {
             *  if (evAlarme is CEvenementAlarmStartStop)
             *  {
             *      CEvenementAlarmStartStop evtAlarmStartStop = (CEvenementAlarmStartStop)evAlarme;
             *      if (evtAlarmStartStop.Gravite == EGraviteAlarmeAvecMasquage.EndAlarm)
             *      {
             *          if (evtAlarmStartStop.IdAlarmData > 0)
             *          {
             *              int nIdAlarmeData = evtAlarmStartStop.IdAlarmData;
             *              StopAlarme(nIdAlarmeData);
             *          }
             *      }
             *      else
             *          StartAlarme(new CInfoAlarmeAffichee(evtAlarmStartStop));
             *  }
             *  else if (evAlarme is CEvenementAlarmMasqueeParUneAutre)
             *  {
             *      CEvenementAlarmMasqueeParUneAutre evenementAlarm =
             *          (CEvenementAlarmMasqueeParUneAutre)evAlarme;
             *
             *      //if (evenementAlarm.AlarmStartId > 0)
             *      //    StopAlarme(evenementAlarm.AlarmStartId);
             *      if (evenementAlarm.IdAlarmeData> 0)
             *          StopAlarme(evenementAlarm.IdAlarmeData);
             *  }
             *  else if (evAlarme is CEvenementAlarmMask)
             *  {
             *      CEvenementAlarmMask evenementAlarm = (CEvenementAlarmMask)evAlarme;
             *      if (evenementAlarm.IdLienAccesAlarme > 0)
             *          MaskAlarme(evenementAlarm);
             *  }
             *
             *
             * }*/
            List <CInfoElementDeSchemaSupervise> lstConcernes = new List <CInfoElementDeSchemaSupervise>();

            OnChangementDansLaBase(lstConcernes);
        }