public async Task <Chat> SendMessage(Guid id, MessageModel message) { var newMessage = new Message() { Id = Guid.NewGuid(), SenderId = message.SenderId, Text = message.Text, TimeStamp = DateTime.Now, Read = false }; var chatWithNewMessage = await _repository.GetChat(id); if (chatWithNewMessage == null) { throw new ChatNotFoundException(id); } chatWithNewMessage.Messages.Add(newMessage); var result = await _repository.Update(id, chatWithNewMessage); var liveMessage = new LiveMessageModel() { ChatId = id, Message = newMessage, }; _liveChatService.SendPrivateMessage(liveMessage, chatWithNewMessage.Buyer.Id != message.SenderId ? chatWithNewMessage.Buyer.Id : chatWithNewMessage.Seller.Id); return(result); }
public async void SendPrivateMessage(LiveMessageModel model, Guid user) { await _hubContext.Clients.User(user.ToString()).SendAsync("ReceiveMessage", model); }