예제 #1
0
        public override IEnumerable<TokenResult> Parse(string input, string UserId)
        {
            var tokenResults = new List<TokenResult>();

            //if "in" is included, we'll defer this to TokenWhoWasIn
            if (input.IndexOf("who is in") > -1 || input.IndexOf("who was in") > -1)
            {
                return tokenResults;
            }

            var results = base.Parse(input, UserId);

            if (results.Any())
            {
                var tokenRequest = results.OrderByDescending(qty => qty.Length).First();

                if (tokenRequest.Start == 0)
                {
                    tokenResults.Add(tokenRequest);

                    var remainder = input.Substring(tokenRequest.Start + tokenRequest.Length + 1).Trim();

                    var topResults = new TokenQueryTop().Parse(remainder, UserId);

                    if (topResults.Any())
                    {
                        //tokenResults.AddRange(topResults);
                        return tokenResults;
                    }

                    var searchTermResult = new TokenResult
                    {
                        Length = input.Length - tokenRequest.Length - 1,
                        Start = tokenRequest.Start + tokenRequest.Length + 1,
                        Token = new TokenQuotedPhrase
                        {
                            Value = input.Substring(tokenRequest.Start + tokenRequest.Length + 1)
                        },
                        TokenType = typeof(TokenQuotedPhrase).ToString(),
                        Value = input.Substring(tokenRequest.Start + tokenRequest.Length + 1)
                    };

                    tokenResults.Add(searchTermResult);
                }
            }

            return tokenResults;
        }
예제 #2
0
 /* Eg: give me the top overdue customers */
 public static void TopResponse(ConversationContext cContext, TokenWhoIs p1, TokenQueryTop p2, TokenOverdue p3, TokenCustomers p4)
 {
     cContext.Say(CreateResponse(p3), null);
 }
예제 #3
0
 /* Eg: give me the top sales customers */
 public static void TopResponse(ConversationContext cContext, TokenRequest p1, TokenQueryTop p2, TokenSales p3, TokenCustomers p4)
 {
     cContext.Say(CreateResponse(p3), null);
 }