public override async Task <IActionResult> Handle(GoogleDialogFlowRequest request, ILogger log)
        {
            var response = GoogleDialogFlowResponse.FromRequest(request);

            PopulateSessionParameters(response);

            var correspondingPrograms = await this.programRepository
                                        .SearchProgramsByCategory(response.Session.Params["dateTime"],
                                                                  response.Session.Params["channel"],
                                                                  response.Session.Params["category"]) as IEnumerable <TVProgram>;

            if (!correspondingPrograms.Any())
            {
                response.Prompt.FirstSimple = new Simple
                {
                    Speech = "Désolé, je n'ai pas trouvé de programme qui pourrait vous correspondre."
                };

                return(new OkObjectResult(response));
            }

            var content = await CreateLookupContent(correspondingPrograms, log);

            if (!response.Request.Intent.Params.ContainsKey("channel"))
            {
                await PrepareMultipleChannelAnswer(response, content, log);
            }
            else
            {
                await PrepareSingleChannelAnswer(response, content, log);
            }

            return(new OkObjectResult(response));
        }
Ejemplo n.º 2
0
        public override Task <IActionResult> Handle(GoogleDialogFlowRequest request, ILogger log)
        {
            var response = GoogleDialogFlowResponse.FromRequest(request);

            response.Prompt.FirstSimple = new Simple
            {
                Speech = "Bonjour. Que puis-je faire pour vous ?"
            };

            response.Prompt.Override = false;

            return(Task.FromResult <IActionResult>(new OkObjectResult(response)));
        }
Ejemplo n.º 3
0
 public abstract Task <IActionResult> Handle(GoogleDialogFlowRequest request, ILogger log);