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); }
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>"); }
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); }