Esempio n. 1
0
        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);
            }
        }
Esempio n. 3
0
    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");
            }
        }
    }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
 Task <bool> IPlayerClient.AddToQueue(PlayerAddToQueueRequest request)
 => throw new NotImplementedException();
Esempio n. 7
0
 public static async Task AddSongToQueueAsync(string song)
 {
     PlayerAddToQueueRequest request = new PlayerAddToQueueRequest(song);
     await SClient.Player.AddToQueue(request);
 }