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