/// <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); } } }