public static void SendTopicMessage(TopicMessage topicMessage, WebSocket receiverWebsocket) { var message = new TopicMessageDto { TopicTitle = topicMessage.Topics.Title, Sender = topicMessage.User.Username, Text = topicMessage.Text, CreatedAt = topicMessage.CreatedAt.ToLocalTime().ToString() }; Communication.SendResponse(receiverWebsocket, message); }
private void HandleTopicMessage(TopicMessageDto topicMessageDto) { if (!AuthService.IsLoggedIn(_user)) { Communication.SendError(_webSocket, "You must be logged in to send direct message"); Log.Warning("Not logged in user tried to send topic message"); return; } var topic = TopicService.GetTopics(topicMessageDto.TopicTitle); if (topic != null) { var newTopicMessage = new TopicMessage { CreatedAt = DateTimeOffset.Now, Text = topicMessageDto.Text, UserId = _user.UserId, TopicsId = topic.TopicsId }; var topicMessage = MessageService.SaveTopicMessage(newTopicMessage); if (topicMessage != null) { var userList = TopicService.GetUserForTopic(topic); foreach (var user in userList.Where(user => _connectedClient.ContainsKey(user))) { MessageService.SendTopicMessage( topicMessage, _connectedClient[user] ); } } else { Communication.SendError(_webSocket, $"Could not save message to topic {topicMessageDto.TopicTitle}"); Log.Error("Error while saving topic message"); } } else { Communication.SendError(_webSocket, $"Could not send message to topic {topicMessageDto.TopicTitle}"); Log.Warning($"Topic {topicMessageDto.TopicTitle} do not exist"); } }