private async Task <IActionResult> HandleIntent(QueryResult queryResult, DetectTextIntentRequest request) { switch (queryResult.Intent.DisplayName) { //command case UserIntents.RemoveBasketItem: return(await HandleActionResultFor(new RemoveBasketItemCommand(queryResult, request))); case UserIntents.OrderFood: return(await HandleActionResultFor(new AddFoodToCartCommand(queryResult, request))); case UserIntents.PlaceOrder: return(await HandleActionResultFor(new PlaceOrderCommand(queryResult, request))); case UserIntents.RepeatLastOrder: return(await HandleActionResultFor(new RepeatLastOrderCommand(queryResult, request))); case UserIntents.ChangeLanguage: return(await HandleActionResultFor(new ChangeLanguageCommand(queryResult, request))); //query case UserIntents.CheckBasket: return(await HandleQueryResultFor(new GetBasketInformationQuery(queryResult, request))); case UserIntents.GetDeliveryStatus: return(await HandleQueryResultFor(new GetDeliveryStatusQuery(queryResult, request))); case UserIntents.GetCategoryMenu: return(await HandleQueryResultFor(new GetCategoryMenuQuery(queryResult, request))); case UserIntents.GetFoodDetails: return(await HandleQueryResultFor(new GetFoodDetailQuery(queryResult, request))); case UserIntents.GetRestaurants: case UserIntents.GetMoreRestaurants: return(await HandleQueryResultFor(new GetRestaurantListQuery(queryResult, request))); case UserIntents.GetRestaurantMenu: return(await HandleQueryResultFor(new GetRestaurantMenuQuery(queryResult, request))); default: return(Ok(Envelope.Ok(queryResult.FulfillmentText))); } }
public async Task <IActionResult> DetectIntent(DetectTextIntentRequest request) { var pref = await _userPreferenceService.GetUserPreference(request.Username); var response = await _client.DetectIntentAsync( session : SessionName.FromProjectSession(_projectId, request.SessionId), queryInput : new QueryInput() { Text = new TextInput() { Text = request.Text, LanguageCode = pref.PreferredLanguage } } ); return(await HandleIntent(response.QueryResult, request)); }
public GetBasketInformationQuery(QueryResult queryResult, DetectTextIntentRequest requestSessionId) { throw new System.NotImplementedException(); }
public AddFoodToCartCommand(QueryResult queryResult, DetectTextIntentRequest request) { QueryResult = queryResult; Request = request; }
public GetFoodDetailQuery(QueryResult queryResult, DetectTextIntentRequest requestSessionId) { throw new System.NotImplementedException(); }
public GetRestaurantMenuQuery(QueryResult queryResult, DetectTextIntentRequest requestSessionId) { QueryResult = queryResult; }
public RepeatLastOrderCommand(QueryResult queryResult, DetectTextIntentRequest requestSessionId) { throw new System.NotImplementedException(); }
public PlaceOrderCommand(QueryResult queryResult, DetectTextIntentRequest request) { QueryResult = queryResult; Request = request; }
public RemoveBasketItemCommand(QueryResult queryResult, DetectTextIntentRequest requestSessionId) { }
public ChangeLanguageCommand(QueryResult queryResult, DetectTextIntentRequest request) { QueryResult = queryResult; SessionId = request.SessionId; Username = request.Username; }
public GetDeliveryStatusQuery(QueryResult queryResult, DetectTextIntentRequest requestSessionId) { throw new System.NotImplementedException(); }
public GetCategoryMenuQuery(QueryResult queryResult, DetectTextIntentRequest requestSessionId) { QueryResult = queryResult; }