Exemple #1
0
        /// <summary>
        /// adds a session identified by uniques ID
        /// </summary>
        /// <param name="aID">unique ID</param>
        /// <param name="aUserInfo">session/user info</param>
        public virtual void AddSession(string aID, IUserInfo aUserInfo)
        {
            if (this.AddedSession != null)
            {
                lock (m_ActiveSessions)
                {
                    MessageRouter_EventArgs args = new MessageRouter_EventArgs(aID, aUserInfo);

                    this.AddedSession(this, new MessageRouter_EventArgs(aID, aUserInfo));
                    if (!args.Cancel)
                    {
                        m_ActiveSessions.Add(aID, aUserInfo);

                        //stoping notification timer when user logined;
                        if (m_RemoteNitificator != null)
                        {
                            DeviceInfo aDeviceInfo = m_RemoteNitificator.GetDeviceInfoByLogin(aUserInfo.Login);
                            if (aDeviceInfo != null)
                            {
                                aDeviceInfo.StopNotificationTimer();
                            }
                        }
                    }
                    else
                    {
                        throw new ApplicationException("The session is not enabled. Reason: " + args.Reason);
                    }
                }
            }
        }
        /// <summary>
        /// adds a session identified by uniques ID
        /// </summary>
        /// <param name="aID">unique ID</param>
        /// <param name="aUserInfo">session/user info</param>
        public virtual void AddSession(string aID, IUserInfo aUserInfo)
        {
            lock (m_ActiveSessions)
            {
                var args = new MessageRouter_EventArgs(aID, aUserInfo);

                if (!args.Cancel)
                {
                    if (m_ActiveSessions.ContainsKey(aID))
                    {
                        return;
                    }

                    m_ActiveSessions.Add(aID, aUserInfo);
                    m_ActiveLoginSessions[aUserInfo.Login] = aID;
                    AddedSession?.Invoke(this, new MessageRouter_EventArgs(aID, aUserInfo));
                }
                else
                {
                    throw new ApplicationException("The session is not enabled. Reason: " + args.Reason);
                }
            }
        }