public ChatWindowViewModel(Conversation conversation, IServiceRegistry serviceRegistry) : base(serviceRegistry) { if (!IsInDesignMode) { userRepository = ServiceRegistry.GetService <RepositoryManager>().GetRepository <User>(); participationRepository = (ParticipationRepository)ServiceRegistry.GetService <RepositoryManager>().GetRepository <Participation>(); clientService = ServiceRegistry.GetService <IClientService>(); Participation participation = participationRepository.GetParticipationByUserIdandConversationId(clientService.ClientUserId, conversation.Id); groupChat = new GroupChatModel(participation); contributionMessageFormatter = new ContributionMessageFormatter(clientService.ClientUserId, userRepository); userRepository.EntityAdded += OnUserChanged; userRepository.EntityUpdated += OnUserChanged; ServiceRegistry.GetService <RepositoryManager>().GetRepository <Conversation>().EntityUpdated += OnConversationUpdated; participationRepository.EntityUpdated += OnParticipationUpdated; AddUserCommand = new AddUserToConversationCommand(this); groupChat.Conversation = conversation; groupChat.Users = GetUsers(); UpdateConnectedUsersList(); groupChat.WindowTitle = userRepository.FindEntityById(clientService.ClientUserId).Username; groupChat.Title = GetChatTitle(); } }