예제 #1
0
        public void Dispose()
        {
            if (m_bDisposed)
            {
                return;
            }
            try
            {
                CSessionClient session = CSessionClient.GetSessionForIdSession(IdSession);
                if (session != null)
                {
                    session.UnregisterRecepteurNotification(this);
                }

                /*CGestionnaireObjetsAttachesASession.DetacheObjet ( IdSession, this );
                 * IGestionnaireNotification gestionnaire = (IGestionnaireNotification)C2iFactory.GetNewObjetForSession("CGestionnaireNotification", typeof(IGestionnaireNotification), m_nIdSession);
                 * if ( gestionnaire != null )
                 *      gestionnaire.UnregisterRecepteur ( this );*/
                m_bDisposed = true;
            }
            catch {}
        }
예제 #2
0
        /// ///////////////////////////////////////////////////////
        /// Déclare le nouveau recepteur et l'enregistre auprès du gestionnaire
        /// de notification du système.
        public CRecepteurNotification(int nIdSession, Type typeDeNotificationGeree)
        {
            m_nIdSession = nIdSession;
            CSessionClient session = CSessionClient.GetSessionForIdSession(nIdSession);

            if (session == null)
            {
                throw (new Exception(I.T("The @1 session doesn't exist|104", nIdSession.ToString())));
            }
            try
            {
                session.RegisterRecepteurNotification(this, typeDeNotificationGeree);
            }
            catch (Exception e)
            {
                System.Console.WriteLine("Erreur enregistrement de notification " + e.ToString());
            }

            /*IGestionnaireNotification gestionnaire = (IGestionnaireNotification)C2iFactory.GetNewObjetForSession("CGestionnaireNotification", typeof(IGestionnaireNotification), m_nIdSession);
             * if ( gestionnaire != null )
             *      gestionnaire.RegisterRecepteur(this, typeDeNotificationGeree);
             * CGestionnaireObjetsAttachesASession.AttacheObjet(nIdSession, this);*/
        }
예제 #3
0
        ///////////////////////////////////////////////
        /// <summary>
        /// Retourne la session unique d'une application n'hébergeant qu'une seule Session
        /// </summary>
        /// <returns></returns>
        public static CSessionClient GetSessionUnique()
        {
            int nIdSession = m_nFirstSessionOuverte;

            try
            {
                IdSessionUtilisateurData data = GetDataThread(GlobalUseSessionUtilisateurData);
                if (data.HasIdSession)
                {
                    nIdSession = data.IdSession;
                }
            }
            catch
            {
            }
            CSessionClient session = (CSessionClient)m_tableSessionParId[nIdSession];

            if (session == null)
            {
                session = GetSessionForIdSession(nIdSession);
            }
            return(session);
        }