Exemplo n.º 1
0
        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);
            });
        }
Exemplo n.º 2
0
        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);
        }