/// <summary> /// Given a trackID, gets its audio features then passes that /// to the Machine Learning Web Service /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task <JsonResult> GetPrediction(string id) { Task <JObject> audioFeatures = SpotifyAPIs.GetSpotifyAudioFeaturesAsync(id); Task <int> trackYear = SpotifyAPIs.GetTrackReleaseYear(id); await Task.WhenAll(audioFeatures, trackYear); string response; if (audioFeatures.Result != null && trackYear.Result != 0) { var scoreRequest = PredictionRequest.CreateRequest(audioFeatures.Result, trackYear.Result); response = await CallMlService(scoreRequest); } else { response = "Try again: Spotify Web APIs returned an error"; } return(Json(response, JsonRequestBehavior.AllowGet)); }
public override ViewResult Index() { SpotifyAPIs.GetSpotifyAccessToken(); //loads access token into runtime cache return(View("Index", "_Layout")); }