public async Task <ActionResult <ConversationViewModel> > CreateConversation(ConversationInputViewModel viewModel) { var createdConversation = await ConversationService.AddConversation(Mapper.Map <Conversation>(viewModel)); return(CreatedAtAction(nameof(GetConversation), new { id = createdConversation.Id }, Mapper.Map <ConversationViewModel>(createdConversation))); }
private async void HandleDirectText(Message message) { var sender = message.GetDirectTextNickname(); var content = message.GetDirectTextContent(); var conversation = PassiveConversationService.Conversations.FirstOrDefault(c => c.Participants.Select(p => p.Nickname).Contains(sender)) ?? await ConversationService.AddConversation(ConversationType.Passive, UserService.LoggedUser.Nickname, sender); var conversationControl = ConversationControls.FirstOrDefault(p => p.PassiveConversation == conversation); if (conversationControl == null) { conversationControl = new ConversationControl { PassiveConversation = conversation }; Dispatcher.Invoke(() => { ConversationList.Items.Add(conversationControl); }); } if (SelectedConversationControl.PassiveConversation != conversationControl.PassiveConversation) { conversationControl.Notify(); } var messageDisplay = MessageDisplays.FirstOrDefault(m => m.Conversation == conversation); if (messageDisplay == null) { messageDisplay = new MessageDisplayControl(conversation); Dispatcher.Invoke(() => { MessageDisplays.Add(messageDisplay); }); return; } Dispatcher.Invoke(() => { var msg = new TextMessage(content, DateTime.Now, UserService.GetUser(sender)); conversation.Messages.Add(msg); messageDisplay.AddMessageControl(msg); }); }
public void CreateConversation() { ConversationService.AddConversation(this); }