示例#1
0
        public void AddQueueTest()
        {
            var queueMessage = new QueueMessage
            {
                Message = "/stock=aapl.us",
                Queue   = "ChatBot"
            };

            _queueProducerService.AddToQueue(queueMessage);
            _output.WriteLine(JsonSerializer.Serialize(queueMessage));
            Assert.True(true);
        }
        public void InterpretCommand(string message)
        {
            var queueMessage = new QueueMessage
            {
                Queue = "ChatHub"
            };

            //Remove special caracters
            message = message.Replace(" ", "");
            message = Regex.Replace(message, @"[^\w\.@-]", "", RegexOptions.None, TimeSpan.FromSeconds(1.5));

            if (message.StartsWith("stock"))
            {
                var stockRequest = new StockRequest
                {
                    StockCode = message.Replace("stock", "")
                };

                //Get Stock Value from webService
                Stock stock = _stockWS.GetStock(stockRequest).Result;


                if (stock.Open > 0)
                {
                    queueMessage.Message = $"{stock.Symbol} quote is ${stock.Open.ToString("G", CultureInfo.InvariantCulture)} per share";
                }
                else
                {
                    queueMessage.Message = $"{stock.Symbol} stock not found";
                }
            }
            else
            {
                //Return inválid command to chat queue
                queueMessage.Message = "Invalid Command";
            }
            _queueProducerServices.AddToQueue(queueMessage);
        }