Пример #1
0
        public List <JokeResource> GetLocaleResources()
        {
            List <JokeResource> resources = new List <JokeResource>();

            JokeResource enGBResource = new JokeResource("en-GB");

            GetMessgesForResource(enGBResource);
            GetJokesForResource(enGBResource);

            resources.Add(enGBResource);
            return(resources);
        }
Пример #2
0
        private string EmitNewJoke(JokeResource resource, bool withLaunchPreface, bool isSsml)
        {
            Random r = new Random();

            string responseString = "<speak>";

            if (withLaunchPreface && isSsml)
            {
                responseString += resource.Jokes[r.Next(resource.Jokes.Count)].JokeText + "<break time='1s' />" + resource.RequestAnotherJokePrompt;
            }
            else
            {
                responseString += resource.Jokes[r.Next(resource.Jokes.Count)].JokeText;
            }

            return(responseString + "</speak>");
        }
Пример #3
0
        public SkillResponse FunctionHandler(SkillRequest input, ILambdaContext context)
        {
            SkillResponse response = new SkillResponse();

            response.Response = new ResponseBody();
            response.Response.ShouldEndSession = false;
            ILambdaLogger log = context.Logger;

            log.LogLine($"Skill Request Object:");
            log.LogLine(JsonConvert.SerializeObject(input));

            SsmlOutputSpeech innerResponse = new SsmlOutputSpeech();

            innerResponse.Ssml = "<speak></speak>";

            List <JokeResource> allResources = GetLocaleResources();
            JokeResource        resource     = allResources.FirstOrDefault();

            if (input.GetRequestType() == typeof(LaunchRequest))
            {
                log.LogLine($"Default LaunchRequest made: 'Alexa, open Animal Jokes");
                innerResponse.Ssml = EmitNewJoke(resource, withLaunchPreface: true, isSsml: true);
            }
            else if (input.GetRequestType() == typeof(IntentRequest))
            {
                IntentRequest intentRequest = (IntentRequest)input.Request;

                string intentName = intentRequest.Intent.Name;

                switch (intentName)
                {
                case "AMAZON.CancelIntent":
                    log.LogLine($"AMAZON.CancelIntent: send StopMessage");
                    innerResponse.Ssml = "<speak>" + resource.StopMessage + "</speak>";
                    response.Response.ShouldEndSession = true;
                    break;

                case "AMAZON.StopIntent":
                    log.LogLine($"AMAZON.StopIntent: send StopMessage");
                    innerResponse.Ssml = "<speak>" + resource.StopMessage + "</speak>";
                    response.Response.ShouldEndSession = true;
                    break;

                case "AMAZON.HelpIntent":
                    log.LogLine($"AMAZON.HelpIntent: send HelpMessage");
                    innerResponse.Ssml = "<speak>" + resource.HelpMessage + "</speak>";
                    break;

                case "GetJokeIntent":
                    log.LogLine($"GetJokeIntent sent: send new joke");
                    innerResponse.Ssml = EmitNewJoke(resource, false, false);
                    response.Response.ShouldEndSession = true;
                    break;

                case "GetNewJokeIntent":
                    log.LogLine($"GetNewJokeIntent sent: send new joke");
                    innerResponse.Ssml = EmitNewJoke(resource, false, false);
                    response.Response.ShouldEndSession = true;
                    break;

                default:
                    log.LogLine($"Unknown intent: " + intentRequest.Intent.Name);
                    innerResponse.Ssml = "<speak>" + resource.HelpReprompt + "</speak>";
                    break;
                }
            }
            else if (input.GetRequestType() == typeof(SessionEndedRequest))
            {
                log.LogLine($"AMAZON.SessionEndedRequest: send StopMessage");
                innerResponse.Ssml = "<speak>" + resource.StopMessage + "</speak>";
                response.Response.ShouldEndSession = true;
            }

            response.Response.OutputSpeech = innerResponse;
            response.Version = "1.0";
            log.LogLine($"Skill Response Object...");
            log.LogLine(JsonConvert.SerializeObject(response));
            return(response);
        }