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); }
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); }