public async Task AddMessageAsync(ChatMessageDetailDTO message)
        {
            var newMessage = new ChatMessage()
            {
                Text         = message.Text,
                SentDateTime = message.SentDateTime,
                ChatMembers  = new List <ChatMember>()
                {
                    new ChatMember()
                    {
                        Type   = ChatMemberType.Sender,
                        UserId = message.SenderId
                    },
                    new ChatMember()
                    {
                        Type   = ChatMemberType.Receiver,
                        UserId = message.ReceiverId
                    }
                }
            };

            await _context.ChatMessages.AddAsync(newMessage);

            await _context.SaveChangesAsync();
        }
Exemple #2
0
        public async Task AddNewMessage()
        {
            if (string.IsNullOrWhiteSpace(NewMessageText))
            {
                return;
            }

            var newMessage = new ChatMessageDetailDTO()
            {
                Text         = NewMessageText,
                SentDateTime = DateTime.Now,
                SenderId     = _currentUserProvider.Id,
                ReceiverId   = ChatMemberUserId
            };

            await _chatMessageService.AddChatMessageAsync(newMessage);

            NewMessageText = string.Empty;
        }
Exemple #3
0
        public static async Task AddChatMessageAsync(this IHubContext <ChatHub> chatHub, ChatMessageDetailDTO chatMessage)
        {
            await chatHub.Clients
            .Group($"{chatMessage.SenderId}_{chatMessage.ReceiverId}")
            .SendAsync("addChatMessage", CancellationToken.None);

            await chatHub.Clients
            .Group($"{chatMessage.ReceiverId}_{chatMessage.SenderId}")
            .SendAsync("addChatMessage", CancellationToken.None);

            await chatHub.Clients
            .Group($"{chatMessage.SenderId}")
            .SendAsync("addChatMessage", CancellationToken.None);

            await chatHub.Clients
            .Group($"{chatMessage.ReceiverId}")
            .SendAsync("addChatMessage", CancellationToken.None);
        }
        public async Task AddChatMessageAsync(ChatMessageDetailDTO chatMessage)
        {
            await _chatMessageRepository.AddMessageAsync(chatMessage);

            await _chatHubContext.AddChatMessageAsync(chatMessage);
        }