/* Eg: address for XYZ */ public static void AddressResponse(ConversationContext cContext, TokenQueryAddress p1, TokenFor p2, TokenQuotedPhrase p3) { cContext.Say(CreateResponse(p3.Value.ToString()), null); }
/* Eg: give me customeraddress for xyz*/ public static void AddressResponse(ConversationContext cContext, TokenRequest p1, TokenCustomer p2, TokenQueryAddress p3, TokenFor p4, TokenQuotedPhrase p5) { cContext.Say(CreateResponse(p5.Value.ToString()), null); }
/* Eg: give me address for customer */ public static void AddressResponse(ConversationContext cContext, TokenRequest p1, TokenQueryAddress p2, TokenFor p3, TokenCustomer p4) { // Ask for which customer cContext.AskQuestion(CreateResponse(null)); }
/* Eg: customer phone number for */ public static void PhoneNoResponse(ConversationContext cContext, TokenCustomer p1, TokenQueryPhoneNo p2, TokenFor p3) { // Ask for which customer cContext.AskQuestion(CreateResponse(null)); }
public override IEnumerable<TokenResult> Parse(string input, string UserId) { var tokenResults = new List<TokenResult>(); string remainder = string.Empty; var results = base.Parse(input, UserId); if (results.Any()) { tokenResults.Add(results.OrderByDescending(qty => qty.Length).First()); int startPos = tokenResults.First().Start + tokenResults.First().Length + 1; if (startPos < input.Length) { remainder = input.Substring(startPos); if (remainder.Length > 0) { results = new TokenFor().Parse(remainder, UserId); if (results.Any()) { var tokenFor = results.OrderByDescending(token => token.Start).First(); tokenFor.Start += startPos; startPos = tokenFor.Start + tokenFor.Length + 1; tokenResults.Add(tokenFor); remainder = (remainder.Length <= tokenFor.Length) ? string.Empty : remainder.Substring(tokenFor.Length + 1); if (remainder.Length > 0) { results = new TokenCustomer().Parse(remainder, UserId); if (results.Any()) { var tokenCust = results.OrderByDescending(token => token.Start).First(); tokenCust.Start += startPos; startPos = tokenCust.Start + tokenCust.Length + 1; tokenResults.Add(tokenCust); remainder = (remainder.Length <= tokenCust.Length) ? string.Empty : remainder.Substring(tokenCust.Length + 1); } } } if (!string.IsNullOrEmpty(remainder)) { tokenResults.Add(new TokenResult { Length = remainder.Length, Start = startPos, Token = new TokenQuotedPhrase { Value = remainder }, TokenType = typeof(TokenQuotedPhrase).ToString(), Value = remainder }); } } } } return tokenResults; }
/* Eg: customer phone number for xyz*/ public static void PhoneNoResponse(ConversationContext cContext, TokenCustomer p1, TokenQueryPhoneNo p2, TokenFor p3, TokenQuotedPhrase p4) { cContext.Say(CreateResponse(p4.Value.ToString()), null); }
/* Eg: give me the balance for */ public static void BalanceResponse(ConversationContext cContext, TokenRequest p1, TokenQueryBalance p2, TokenFor p3) { // Ask for which customer cContext.AskQuestion(CreateResponse(null)); }
/* Eg: give me balance for XYZ */ public static void BalanceResponse(ConversationContext cContext, TokenRequest p1, TokenQueryBalance p2, TokenFor p3, TokenQuotedPhrase p4) { cContext.Say(CreateResponse(p4.Value.ToString()), null); }
/* Eg: give me a stock check for item */ public static void ItemResponse(ConversationContext cContext, TokenRequest p1, TokenQueryQuantity p2, TokenFor p3, TokenItem p4) { // Ask for which item cContext.AskQuestion(CreateResponse(null)); }
/* Eg: give me a stock check for item XYZ */ public static void ItemResponse(ConversationContext cContext, TokenRequest p1, TokenQueryQuantity p2, TokenFor p3, TokenItem p4, TokenQuotedPhrase p5) { cContext.Say(CreateResponse(p5.Value.ToString()), null); }