//--- Methods ---
        public override async Task <CustomSkillResponse> HandleRequest(CustomSkillRequest customSkillRequest)
        {
            var intentSlots = customSkillRequest.Intent.Slots;
            var intentName  = customSkillRequest.Intent.Name;

            // lookup song title and artist
            GetSongInfoRequested(intentSlots);
            if (IsValidRequest())
            {
                await FindRequestedSong();
            }

            // generate sqs body and send to the queue
            var generatedMessage = GenerateMessage();
            var sqsReuqest       = GenerateJukeboxSqsRequest(intentName, generatedMessage, "");

            await SendSqsRequest(sqsReuqest, intentName);

            // generate alexa response
            var customSkillResponse = new CustomSkillResponse {
                Message = generatedMessage
            };

            LambdaLogger.Log($"*** INFO: Alexa response to user: {JsonConvert.SerializeObject(customSkillResponse)}");
            return(customSkillResponse);
        }
        //--- Methods ---
        public override async Task <CustomSkillResponse> HandleRequest(CustomSkillRequest customSkillRequest)
        {
            var intentSlots = customSkillRequest.Intent.Slots;
            var intentName  = customSkillRequest.Intent.Name;

            FoundSongs    = new List <SongModel.Song>();
            SongRequested = new SongModel.Song();

            // lookup song title and artist
            GetSongInfoRequested(intentSlots);
            if (IsValidRequest())
            {
                await FindRequestedSong();
            }

            // if no songs found, top matches
            if (FoundSongs.ToList().Count == 0)
            {
                await FindSimilarSongs();
            }

            // generate sqs body and send to the queue
            var generatedMessage = GenerateMessage();

            if (FoundSongs.ToList().Count == 1)
            {
                var sqsRequest = GenerateJukeboxSqsRequest(intentName, generatedMessage, FoundSongs.ToList().FirstOrDefault().SongNumber);
                await SendSqsRequest(sqsRequest, intentName);
            }
            else if (FoundSongs.ToList().Count > 1)
            {
                generatedMessage += "Top 3 matches: ";
                generatedMessage += FoundSongs.Aggregate(" ", (current, song) => current + $"Song {song.SongNumber} {song.Title} by {song.Artist}. ");
            }

            // generate alexa response
            var customSkillResponse = new CustomSkillResponse {
                Message = generatedMessage
            };

            LambdaLogger.Log($"*** INFO: Alexa response to user: {JsonConvert.SerializeObject(customSkillResponse)}");
            return(customSkillResponse);
        }
Beispiel #3
0
        //--- Methods ---
        public override async Task <CustomSkillResponse> HandleRequest(CustomSkillRequest intentRequest)
        {
            var intentSlots = intentRequest.Intent.Slots;
            var intentName  = intentRequest.Intent.Name;

            GetSongInfoRequested(intentSlots);

            // generate sqs body and send to the queue
            var generatedMessage = GenerateMessage();
            var sqsReuqest       = GenerateJukeboxSqsRequest(intentName, generatedMessage, SpeakerAction);

            await SendSqsRequest(sqsReuqest, intentName);

            // generate alexa response
            var customSkillResponse = new CustomSkillResponse {
                Message = generatedMessage
            };

            LambdaLogger.Log($"*** INFO: Alexa response to user: {JsonConvert.SerializeObject(customSkillResponse)}");
            return(customSkillResponse);
        }