public async Task Handle(ReponseStockCsv message, IMessageHandlerContext context)
        {
            var response = new ChatRoomMessageResponseHubDto();

            response.ChatRoomId  = message.ChatRoomId;
            response.Sender      = "bot";
            response.MessageDate = DateTime.Now;
            response.Message     = message.BotMessage;

            await _hubContext.Clients.Group(message.ChatRoomId)
            .SendAsync(HubConstants.ON_MSG_RECVD, response);
        }
Example #2
0
        public async Task <ChatRoomMessageResponseHubDto> ProcessMessage(ChatRoomMessageHubDto hubMessage)
        {
            var response = new ChatRoomMessageResponseHubDto();

            if (isBotCommand(hubMessage.Message))
            {
                var command = hubMessage.Message.Split("=");
                switch (command[0])
                {
                case BotCommands.StockCommand:
                    var param = command[1];
                    try
                    {
                        await _bus.Send(new RequestStockCSV { Id = Guid.NewGuid().ToString(), Stock = param, ChatRoomId = hubMessage.ChatRoomCode });
                    }
                    catch (Exception ex)
                    {
                        response = CreateBotMessage(hubMessage.ChatRoomCode, "Ups, looks like my service is not running. Try again later :c");
                        break;
                    }
                    response = CreateBotMessage(hubMessage.ChatRoomCode, "Hello, In a moment you will receive the requested stock information.");
                    break;

                default:
                    Console.WriteLine("Handle unknow commands here");
                    response = CreateBotMessage(hubMessage.ChatRoomCode, "Sorry I could not understand the command. :c");
                    break;
                }
            }
            else
            {
                await _chatMessageService.SaveMessage(hubMessage).ConfigureAwait(false);

                response.ChatRoomId  = hubMessage.ChatRoomCode;
                response.Sender      = hubMessage.User;
                response.Message     = hubMessage.Message;
                response.MessageDate = DateTime.Now;
            }

            return(response);
        }