Exemplo n.º 1
0
        public async Task <IActionResult> SendChatMessage(PostMessageToChatDto messageData)
        {
            var userId = User.FindFirst("UserId")?.Value;

            if (string.IsNullOrEmpty(userId))
            {
                return(BadRequest());
            }

            messageData.UserId = userId;

            var response = await _messagesManager.ProcessChatMessage(messageData);

            if (!response.Success)
            {
                return(BadRequest(response.ErrorMessage));
            }

            var groupName = messageData.ChatId.ToString();
            var senderId  = messageData.UserId;

            await _hub.Clients
            .GroupExcept(groupName, senderId)
            .SendAsync("receivemessage", response.Message);

            return(Ok(response.Message));
        }