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));
        }
示例#3
0
 public GetBasketInformationQuery(QueryResult queryResult, DetectTextIntentRequest requestSessionId)
 {
     throw new System.NotImplementedException();
 }
 public AddFoodToCartCommand(QueryResult queryResult, DetectTextIntentRequest request)
 {
     QueryResult = queryResult;
     Request     = request;
 }
示例#5
0
 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;
 }
示例#9
0
 public RemoveBasketItemCommand(QueryResult queryResult, DetectTextIntentRequest requestSessionId)
 {
 }
 public ChangeLanguageCommand(QueryResult queryResult, DetectTextIntentRequest request)
 {
     QueryResult = queryResult;
     SessionId   = request.SessionId;
     Username    = request.Username;
 }
示例#11
0
 public GetDeliveryStatusQuery(QueryResult queryResult, DetectTextIntentRequest requestSessionId)
 {
     throw new System.NotImplementedException();
 }
示例#12
0
 public GetCategoryMenuQuery(QueryResult queryResult, DetectTextIntentRequest requestSessionId)
 {
     QueryResult = queryResult;
 }