public void TwoWayAddConversationParticipants(ConversationParticipantAddRequest sender, ConversationParticipantAddRequest recepient) { _dataProvider.ExecuteNonQuery("dbo.UserConversationParticipants_Insert", (parameters) => { parameters.AddWithValue("@ConversationId", sender.ConversationId); parameters.AddWithValue("@UserId", sender.UserId); }); _dataProvider.ExecuteNonQuery("dbo.UserConversationParticipants_Insert", (parameters) => { parameters.AddWithValue("@ConversationId", recepient.ConversationId); parameters.AddWithValue("@UserId", recepient.UserId); }); }
public async Task AddConversation(int recepientUserId) { int senderUserId = _authService.GetCurrentUserId(); UserProfile selectedUserToAdd = _messageService.SelectUserToAdd(recepientUserId); UserProfile senderUserToAdd = _messageService.SelectUserToAdd(senderUserId); ConversationAddRequest newConversation = new ConversationAddRequest(); newConversation.Name = Guid.NewGuid(); int conversationId = _messageService.CreateConversation(newConversation.Name, senderUserId); ConversationParticipantAddRequest senderAddReq = new ConversationParticipantAddRequest(); senderAddReq.ConversationId = conversationId; senderAddReq.UserId = senderUserId; ConversationParticipantAddRequest recepientAddReq = new ConversationParticipantAddRequest(); recepientAddReq.ConversationId = conversationId; recepientAddReq.UserId = recepientUserId; _messageService.TwoWayAddConversationParticipants(senderAddReq, recepientAddReq); var newConvoWithParticipants = new { ConversationId = conversationId, participantId = recepientUserId, firstName = selectedUserToAdd.FirstName, lastName = selectedUserToAdd.LastName, avatarUrl = selectedUserToAdd.AvatarUrl }; if (Users.ContainsKey(recepientAddReq.UserId)) { foreach (string connectionID in Users[recepientAddReq.UserId]) { await Clients.Client(connectionID).SendAsync("NewConversation", newConvoWithParticipants); } } await Clients.Caller.SendAsync("NewConversation", newConvoWithParticipants); }