public IActionResult GeneratePlaylist(List <SpotifyWebAPIWrapper.SpotifyHelpers.SelectedPlaylistElem> selectedPlaylists, string playlistName, bool isPublic, bool isCollaborative, string token) { if (token == null) { return(Json(new SpotifyWebAPIWrapper.SpotifyObjectModel.SpotifyError(400, "Spotify token required!"))); } if (selectedPlaylists.Count < 2) { return(RedirectToAction("Error", new SpotifyWebAPIWrapper.SpotifyObjectModel.SpotifyError(400, "You have to select minimum 2 playlists!"))); } SpotifyWebAPIWrapper.SpotifyAuthorization.SpotifyToken spotifyToken = JsonConvert.DeserializeObject <SpotifyWebAPIWrapper.SpotifyAuthorization.SpotifyToken> (token); _spotifyEndpointAccessor.SetAuthorizationToken(spotifyToken, HttpContext); List <SpotifyWebAPIWrapper.SpotifyObjectModel.SpotifyPlaylist> selectedPlaylistsObject = _spotifyEndpointAccessor.GetPlaylists(selectedPlaylists); SpotifyWebAPIWrapper.SpotifyObjectModel.PlaylistMixerCoreLogic mixer = new SpotifyWebAPIWrapper.SpotifyObjectModel.PlaylistMixerCoreLogic(_spotifyEndpointAccessor); if (HttpContext.Request.Cookies.ContainsKey(SpotifyWebAPIWrapper.SpotifyHelpers.thresholdSettingCookieKey) && HttpContext.Request.Cookies.ContainsKey(SpotifyWebAPIWrapper.SpotifyHelpers.recommendedMusicSettingCookieKey) && HttpContext.Request.Cookies.ContainsKey(SpotifyWebAPIWrapper.SpotifyHelpers.sortOptionSettingCookieKey)) { string thresholdString = HttpContext.Request.Cookies[SpotifyWebAPIWrapper.SpotifyHelpers.thresholdSettingCookieKey]; double thresholdDouble; Double.TryParse(thresholdString, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out thresholdDouble); mixer.Settings.Threshold = thresholdDouble; mixer.Settings.RecommendedMusic = Convert.ToBoolean(HttpContext.Request.Cookies[SpotifyWebAPIWrapper.SpotifyHelpers.recommendedMusicSettingCookieKey]); mixer.Settings.SortOption = SpotifyWebAPIWrapper.SpotifyObjectModel.PlaylistMixerCoreLogic.PlaylistMixerSettings.ConvertStringToSortOptions(HttpContext.Request.Cookies[SpotifyWebAPIWrapper.SpotifyHelpers.sortOptionSettingCookieKey]); } if (playlistName == null || playlistName == "") { playlistName = SpotifyWebAPIWrapper.SpotifyHelpers.MakeDefaultPlaylistName(); } SpotifyWebAPIWrapper.SpotifyObjectModel.SpotifyPlaylist generatedPlaylist = mixer.GenerateMaixifyPlaylist(selectedPlaylistsObject, playlistName, isPublic, isCollaborative); if (generatedPlaylist == null) { return(RedirectToAction("Error", new SpotifyWebAPIWrapper.SpotifyObjectModel.SpotifyError(400, "Cannot make playlist with the given settings!"))); } return(RedirectToAction("Maixified", new { userId = generatedPlaylist.OwnerUser.Id, playlistId = generatedPlaylist.Id, token = token })); }
public IActionResult GetPlaylist(string userId, string playlistId, string token) { if (token == null) { return(Json(new SpotifyWebAPIWrapper.SpotifyObjectModel.SpotifyError(400, "Spotify token required!"))); } if (userId == null || playlistId == null) { return(Json(new SpotifyWebAPIWrapper.SpotifyObjectModel.SpotifyError(400, "Please add a Spotify username/playlist id!"))); } SpotifyWebAPIWrapper.SpotifyAuthorization.SpotifyToken spotifyToken = JsonConvert.DeserializeObject <SpotifyWebAPIWrapper.SpotifyAuthorization.SpotifyToken> (token); _spotifyEndpointAccessor.SetAuthorizationToken(spotifyToken, HttpContext); SpotifyWebAPIWrapper.SpotifyObjectModel.SpotifyPlaylist playlist = _spotifyEndpointAccessor.GetPlaylist(userId, playlistId); if (playlist == null) { return(Json(new SpotifyWebAPIWrapper.SpotifyObjectModel.SpotifyError(404, "Not found/Invalid user or playlist id."))); } return(Json(playlist)); }