Ejemplo n.º 1
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            using (var reader = new StreamReader(req.Body))
            {
                var data = await reader.ReadToEndAsync();

                var request = JsonConvert.DeserializeObject <GoogleDialogFlowRequest>(data);

                IntentBase intent = null;

                switch (request.Intent.Name)
                {
                case "actions.intent.MAIN":
                    intent = new WelcomeIntent();
                    break;

                case "LookUpIntent":
                    intent = new LookupIntent();
                    break;

                case "SearchCategoryIntent":
                    intent = new SearchCategoryIntent();
                    break;

                default:
                    return(new BadRequestObjectResult($"Intent {request.Intent.Name} is not handled!"));
                }

                return(await intent.Handle(request, log));
            }
        }
Ejemplo n.º 2
0
        public SpeechletResponseEnvelope Post()
        {
            var r           = Request.Content.ReadAsStringAsync().Result;
            var requestBody = JsonConvert.DeserializeObject <SpeechletRequestEnvelope>(r);

            Trace.TraceInformation(r);
            Trace.TraceInformation("---------");
            var type = requestBody?.Request?.Type;

            Trace.TraceInformation("intent type" + type);
            if (type == "LaunchRequest")
            {
                return(IntentManager.GetIntent("LaunchRequest").GetAlexaResponse());
                //   return  LaunchRequest.GetAlexaResponse();
            }
            var intentName = requestBody?.Request?.Intent?.Name;

            Trace.TraceInformation("intent Name" + intentName);
            if (string.IsNullOrEmpty(intentName))
            {
                return(null);
            }
            CacheManager.AddSlots(requestBody.Request.Intent.GetSlots);
            IntentBase intent = IntentManager.GetIntent(intentName);

            if (intent == null)
            {
                return(AlexaService.Json.UtillResponces.NoIntent(intentName));
            }
            var alexaResponse = intent.GetAlexaResponse();

            CacheManager.Intent.Push(intent);
            return(alexaResponse);
        }