public static async Task QueueAlbumAsync( string albumId, Guid userId, IRepositoryManager repositoryManager, SpotifyAPICredentials spotifyAPICredentials) { try { var user = await repositoryManager.UserRepository.GetByIdAsync(userId); if (user != null) { if (user.SpotifyRefreshToken != null) { var spotifyAuthRefreshRequest = new AuthorizationCodeRefreshRequest ( spotifyAPICredentials.ClientId, spotifyAPICredentials.ClientSecret, DecryptionService.DecryptString(user.SpotifyRefreshToken) ); var spotifyAuthResponse = await new OAuthClient().RequestToken(spotifyAuthRefreshRequest); var spotifyToken = spotifyAuthResponse.AccessToken; var spotifyClient = new SpotifyClient(spotifyToken); var activeDevices = await spotifyClient.Player.GetAvailableDevices(); if (activeDevices.Devices.Count > 0) { var album = await spotifyClient.Albums.Get(albumId); foreach (var track in album.Tracks.Items) { var trackQueueRequest = new PlayerAddToQueueRequest(track.Uri); await spotifyClient.Player.AddToQueue(trackQueueRequest); } } else { throw new SpotifyNoActiveDevicesException("No Active Devices Found", "No Active Devices Found"); } } else { throw new SpotifyNotLinkedException("Spotify Account not Linked", "Spotify Account not Linked"); } } } catch (Exception) { throw; } }
//The queue API only currently supports single tracks public void Enqueue(String uri) { PlayerAddToQueueRequest enqueueRequest = new PlayerAddToQueueRequest(uri); try { _spotifyClient.Player.AddToQueue(enqueueRequest).GetAwaiter().GetResult();; } catch (Exception e) { //Expect queueing to fail if no device is active Console.WriteLine(e); } }
private void OnAddToQueue() { if (_track != null) { SpotifyClient client = SpotifyService.Instance.GetSpotifyClient(); if (client != null) { PlayerAddToQueueRequest request = new PlayerAddToQueueRequest(_track.Uri); client.Player.AddToQueue(request); LogTrackChange("Added to queue"); } } }
public async Task <bool> AddToQueue (ISpotifyClient client, PlayerAddToQueueRequest request) { try { var addToQueue = await client.Player.AddToQueue(request); return(addToQueue); } catch (Exception ex) { throw new Exception(ex.Message); } }
public async Task <List <string> > AddToSpotifyQueue(IEnumerable <string> uris) { try { var spotify = await Authentication.GetSpotifyClientAsync(); List <string> success = new List <string>(); PlayerAddToQueueRequest request; foreach (var uri in uris) { request = new PlayerAddToQueueRequest(uri); if (await spotify.Player.AddToQueue(request)) { success.Add(uri); } } return(success); } catch (Exception) { return(null); } }
Task <bool> IPlayerClient.AddToQueue(PlayerAddToQueueRequest request) => throw new NotImplementedException();
public static async Task AddSongToQueueAsync(string song) { PlayerAddToQueueRequest request = new PlayerAddToQueueRequest(song); await SClient.Player.AddToQueue(request); }