public Task <bool> Handle(ChatMessageRequestModel request, CancellationToken cancellationToken) { ChatMessage chatMessage = request.ChatMessage; if (!cancellationToken.IsCancellationRequested) { if (chatMessage.MessageType == ApplicationCore.Enums.ChatMessageType.TEXT) { _chatRoomService .AddChatMessage(Guid.Parse(request.ChatRoomId), ((ChatMessageText)chatMessage)); _logger.LogInformation($"Chat message of type " + $"{Enum.GetName(typeof(ChatMessageType).GetType(), chatMessage.MessageType)} " + $"added to room with Id {request.ChatRoomId}"); } else if (chatMessage.MessageType == ApplicationCore.Enums.ChatMessageType.COMMAND) { _messageQueue .EnqueueMessage(new ApplicationCore.DTOs.QueueMessageDTO { Command = ((ChatMessageCommand)chatMessage).Command, RoomId = request.ChatRoomId }); _logger.LogInformation($"Chat message of type " + $"{Enum.GetName(typeof(ChatMessageType).GetType(), chatMessage.MessageType)} " + $"enqueued."); } return(Task.FromResult(true)); } return(Task.FromResult(false)); }