public User(MixedRealityToolkit.Sharing.User XUser, string userName, int id, bool muteState)
 {
     this.XUser     = XUser;
     this.userName  = userName;
     this.id        = id;
     this.muteState = muteState;
 }
        private void BuildUserList()
        {
            ClearUsers();

            // Make sure any existing users are added to the session
            for (int i = 0; i < this.Session.GetUserCount(); i++)
            {
                MixedRealityToolkit.Sharing.User XUser = this.Session.GetUser(i);
                AddUser(XUser);
            }
        }
        private void RemoveUser(MixedRealityToolkit.Sharing.User XUser)
        {
            int id = XUser.GetID();

            App.Current.Dispatcher.BeginInvoke(new Action <SessionData>((sender) =>
            {
                User existingUser = this.sessionUsers.FirstOrDefault(x => x.Id == id);
                if (existingUser != null)
                {
                    this.sessionUsers.Remove(existingUser);
                }
            }), new object[] { this });
        }
        private void AddUser(MixedRealityToolkit.Sharing.User XUser)
        {
            string userName  = XUser.GetName().GetString();
            int    id        = XUser.GetID();
            bool   muteState = XUser.GetMuteState();

            App.Current.Dispatcher.BeginInvoke(new Action <SessionData>((sender) =>
            {
                User existingUser = this.sessionUsers.FirstOrDefault(x => x.Id == id);
                if (existingUser == null)
                {
                    this.sessionUsers.Add(new User(XUser, userName, id, muteState));
                }
            }), new object[] { this });
        }
 private void SessionManagerListener_SessionUserChanged(MixedRealityToolkit.Sharing.Session session, MixedRealityToolkit.Sharing.User XUser)
 {
     if (this.IsValid && this.Session.GetName().IsEqual(session.GetName()))
     {
         UpdateUser(XUser);
     }
 }
 private void SessionManagerListener_SessionUserLeft(MixedRealityToolkit.Sharing.Session session, MixedRealityToolkit.Sharing.User XUser)
 {
     if (this.IsValid && this.Session.GetName().IsEqual(session.GetName()))
     {
         OnPropertyChanged("UserCount");
         RemoveUser(XUser);
     }
 }