예제 #1
0
        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);
        }
예제 #2
0
        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);
                }
            }
        }