private bool Login(User user, string password, bool invited) { if (InviteOnly && !invited) { throw new Exception("This channel is invite only!"); } lock (m_users) { foreach (var u in m_users) { if (u.Name.ToLower().Equals(user.Name.ToLower())) { throw new Exception("User already in channel"); } } if (Password.Equals(password)) { m_timeout.Stop(); m_users.Add(user); HubGroup.UpdateUsers(Users.AsString()); return(true); } } return(false); }
public void Logout(User user) { lock (m_users) { m_users.Remove(user); HubGroup.UpdateUsers(Users.AsString()); if (m_users.Count == 0) { m_timeout.Start(KeepAliveTimeout); } } }