Beispiel #1
0
        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}");
            }
        }
Beispiel #2
0
        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));
        }