/// <summary> /// Opens a chat window. /// </summary> /// <param name="user">The user.</param> public void OpenChatWindow(Collaborator user) { if (!Chats.ContainsKey(user.Name)) { var pane = CahootsPackage.Instance.FindToolWindow( typeof(ChatWindowToolWindow), this.WindowIndex++, true); pane.Caption = "Chat — " + user.Name; Chats.Add(user.Name, pane); var frame = (IVsWindowFrame)pane.Frame; this.WindowFrames.Add(frame); var win = pane.As<ChatWindowToolWindow>().Content as ChatWindowControl; var vm = this.GetViewModel("chat", user, this.UserName) as ChatViewModel; win.ViewModel = vm; frame.Show(); } else { Chats[user.Name].Frame.As<IVsWindowFrame>().Show(); } }
/// <summary> /// Updates the collaborator. /// </summary> /// <param name="collaborator">The collaborator.</param> private void UpdateCollaborator(Collaborator collaborator) { var user = this.ViewModel.Users.FirstOrDefault(u => u.Name == collaborator.Name); if (user != null) { user.Status = collaborator.Status; user.ForceRefresh("Status"); } else { this.ViewModel.Users.Add(collaborator); } }