// Call the Worker thread to load the list of rooms for the connected project service uri private void LoadRooms() { try { TeamRoomWindowCommand.Instance.LogMessage("Loading Rooms"); RoomUsers.Clear(); teamRoom = null; Rooms.Clear(); cmbRoomList.Text = "Loading Team Rooms..."; if (projectCollectionUri != null) { RoomWorker.Instance.LoadRooms(projectCollectionUri); } } catch (Exception ex) { throw; } }
// Set the background worker to poll for messages for the selected room. private void cmbRoomList_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { // Clear messages and Room Users messages.Clear(); RefreshMessages(); RoomUsers.Clear(); RefreshRoomUsers(); int oldRoomId = teamRoom == null ? 0 : teamRoom.Id; if (cmbRoomList.SelectedValue == null || projectCollectionUri == null) { return; } teamRoom = cmbRoomList.SelectedValue as Room; if (teamRoom != null) { SignIntoRoom(oldRoomId, teamRoom.Id); TfsMonitor.Instance.DoWork(projectCollectionUri, teamRoom.Id); RoomWorker.Instance.PollRoomUsers(projectCollectionUri, teamRoom.Id, PollRoomUsers_NewUsers, PollRoomUsers_Complete); var settings = new ExtensionSettings { ProjectCollectionUri = projectCollectionUri, TeamRoomId = teamRoom.Id }; TeamRoomWindowCommand.Instance.SaveUserSettings(settings); } } catch (Exception ex) { // Log errors TeamRoomWindowCommand.Instance.LogError(ex); } }
private void LoadRoomUsers(TeamRoomUsers roomUsers) { if ((teamRoom != null && roomUsers.RoomId != teamRoom.Id) || roomUsers.ConnectionUri != projectCollectionUri) { return; } RoomUsers.Clear(); if (roomUsers.Users != null) { foreach (var item in roomUsers.Users.Where(x => x.IsOnline)) { if (!UserWorker.Instance.ProfileImages.ContainsKey(item.UserRef.Id)) { var profileImages = TfsServiceWrapper.GetUserProfileImages(new List <IdentityRef> { item.UserRef }); UserWorker.Instance.GetProfiles(profileImages); } RoomUsers.Add(item); } } }
private void cmbCollectionList_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { Messages.Clear(); RefreshMessages(); RoomUsers.Clear(); RefreshRoomUsers(); var projectCollection = cmbCollectionList.SelectedValue as RegisteredProjectCollection; if (projectCollection != null) { projectCollectionUri = projectCollection.Uri; } LoadRooms(); TeamRoomWindowCommand.Instance.SaveUserSettings(new ExtensionSettings { TeamRoomId = teamRoom != null ? teamRoom.Id : 0, ProjectCollectionUri = projectCollection.Uri }); } catch (Exception) { throw; } }