public List <MenuItem> GetCompositeItemDetails(LuisWrapper luisWrapper) { List <MenuItem> items = new List <MenuItem>(); foreach (var compositeEntity in luisWrapper.CompositeEntities) { var item = new MenuItem(); foreach (var child in compositeEntity.Children) { switch (child.Type) { case "Drink.Item": item.Name = child.Value; break; case "Drink.Size": item.Size = child.Value; break; case "Drink.Modifier": item.Modifiers.Add(child.Value); break; default: break; } } items.Add(item); } return(items); }
private Boolean ProcessRecognizedText(object s, IntentRecognitionEventArgs e) { Boolean exit = false; if (e.Result.Reason == ResultReason.RecognizedIntent) { // Console.WriteLine($"Recognized Text: {e.Result.Text}"); // Console.WriteLine($"Detected Intent: {e.Result.IntentId}"); var rawJason = e.Result.Properties.GetProperty(PropertyId.LanguageUnderstandingServiceResponse_JsonResult); LuisWrapper luisResponse = JsonConvert.DeserializeObject <LuisWrapper>(rawJason); // Get intent and process entities exit = ProcessResponse(luisResponse); } else if (e.Result.Reason == ResultReason.RecognizedSpeech) { Console.WriteLine($"Recognized Text: {e.Result.Text}"); Console.WriteLine($"Detected Intent: <No Intent>"); if (e.Result.Text.ToUpper().Contains("EXIT") || e.Result.Text.ToUpper().Contains("WINDOW")) { exit = true; } } else { Console.WriteLine("Speech could not be recognized."); exit = false; } return(exit); }
public Boolean ProcessResponse(LuisWrapper luisResponse) { switch (luisResponse.TopScoringIntent.Intent) { case "AddToOrder": if (luisResponse.CompositeEntities != null) { if (luisResponse.CompositeEntities.Length > 0) { var items = GetCompositeItemDetails(luisResponse); _order.AddToOrder(items); } } PrintOrder(_order); break; case "RemoveFromOrder": if (luisResponse.CompositeEntities != null) { if (luisResponse.CompositeEntities.Length > 0) { var items = GetCompositeItemDetails(luisResponse); _order.RemoveFromOrder(items); } } PrintOrder(_order); break; case "None": Console.WriteLine("None intent."); break; default: break; } if (luisResponse.Query.ToUpper().Contains("EXIT") || luisResponse.Query.ToUpper().Contains("WINDOW")) { return(true); } return(false); }