示例#1
0
        public async Task SaveMessage(ChatRoomMessageHubDto message)
        {
            int chatRoomId = _chatRoomRepo
                             .Where(x => x.ChatRoomCode == message.ChatRoomCode)
                             .FirstOrDefault().Id;

            _messageRepo.Add(new ChatRoomMessage
            {
                Message         = message.Message,
                MessageFromUser = message.User,
                MessageTime     = DateTime.Now,
                ChatRoomId      = chatRoomId
            });
            await _uow.Commit();
        }
示例#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);
        }
示例#3
0
 public ChatRoomMessageResponseHubDto ProcessMessage(ChatRoomMessageHubDto message)
 {
     throw new NotImplementedException();
 }