private AudioSkillResponse HandleIntentRequest(IIntentRequest request) { _log.LogLine($"Intent Requested {request.Intent.Name}"); switch (request.Intent.Name) { case "RequestPlayAlbumByArtistIntent": case "RequestPlayAlbumIntent": case "RequestPlayArtistIntent": case "RequestPlaySongByArtistIntent": case "RequestPlaySongOnAlbumIntent": case "RequestPlaySongIntent": return(HandlePlayMusicRequest(request)); case "AMAZON.PauseIntent": return(StopPlaying()); case "AMAZON.CancelIntent": return(StopPlaying()); case "AMAZON.ResumeIntent": return(HandleResumeRequest()); case "AMAZON.NextIntent": return(HandleNextRequest()); case "AMAZON.PreviousIntent": return(HandlePreviousRequest()); default: throw new Exception($"Failed to handle request {request.Intent.Name}"); } }
private AudioSkillResponse HandlePlayMusicRequest(IIntentRequest request) { var slots = request.Intent.Slots; var intent = request.Intent.Name; var requestedArtist = slots.ContainsKey("requestedArtist") ? slots["requestedArtist"].Value : null; var requestedAlbum = slots.ContainsKey("requestedAlbum") ? slots["requestedAlbum"].Value : null; var requestedSong = slots.ContainsKey("requestedSong") ? slots["requestedSong"].Value : null; var hasArtist = !string.IsNullOrEmpty(requestedArtist); var hasAlbum = !string.IsNullOrEmpty(requestedAlbum); var hasSong = !string.IsNullOrEmpty(requestedSong); var artistIsRequired = intent.Contains("Artist"); var albumIsRequired = intent.Contains("Album"); var songIsRequired = intent.Contains("Song"); if (artistIsRequired && !hasArtist) { return(Failed("Artist input was empty")); } if (albumIsRequired && !hasAlbum) { return(Failed("Album input was empty")); } if (songIsRequired && !hasSong) { return(Failed("Song input was empty")); } var artist = new Artist(requestedArtist); var album = new Album(requestedAlbum); switch (intent) { case "RequestPlayAlbumByArtistIntent": return(PlayMusic(artist, album)); case "RequestPlayAlbumIntent": return(PlayMusic(album)); case "RequestPlayArtistIntent": return(PlayMusic(artist)); case "RequestPlaySongByArtistIntent": return(PlayMusic(artist, requestedSong)); case "RequestPlaySongOnAlbumIntent": return(PlayMusic(album, requestedSong)); case "RequestPlaySongIntent": return(PlayMusic(requestedSong)); default: throw new Exception($"Failed to handle request {intent}"); } }
private IHttpActionResult IntentRequest(IIntentRequest intentRequest) { var skillResponse = new SkillResponse { Version = "1.0", Response = new Response { OutputSpeech = new PlainTextOutputSpeech { Text = $"This was a Intent Request for {intentRequest.Intent.Name}." }, ShouldEndSession = intentRequest.Intent.Name == BuiltInIntent.Stop || intentRequest.Intent.Name == BuiltInIntent.Cancel } }; return(Ok(skillResponse)); }