示例#1
0
        public PlaylistVM GetPlayList(EnumPlayLists playLists)
        {
            string spotifyToken = GetSpotifyToken();

            CheckIfSpotifyTokenHasBeenProvided(spotifyToken);

            var client = new RestClient(string.Concat(this._spotifyPlayListApiUrl, GetPlaylist(playLists)));

            client.Timeout = -1;
            var request = new RestRequest(Method.GET);

            request.AddHeader("Authorization", $"Bearer {spotifyToken}");
            IRestResponse response = client.Execute(request);

            if (response.IsSuccessful)
            {
                SpotifyPlaylistVM spotifyPlaylist = JsonConvert.DeserializeObject <SpotifyPlaylistVM>(response.Content);
                IList <TrackVM>   playListTracks  = (from track in spotifyPlaylist.tracks.items
                                                     select new TrackVM(track.track.name, track.track.album.name, track.track.artists.Select(artist => artist.name).ToList(), track.track.external_urls.spotify, track.track.preview_url, track.track.duration_ms)).ToList();

                PlaylistVM recomendedPlaylist = new PlaylistVM();
                recomendedPlaylist.SetPlaylistTracks(playListTracks);
                recomendedPlaylist.SetPlaylistName(spotifyPlaylist.name);
                recomendedPlaylist.SetPlaylistUrl(spotifyPlaylist.external_urls.spotify);

                return(recomendedPlaylist);
            }
            else
            {
                throw new Exception(response.Content);
            }
        }
示例#2
0
        private string GetPlaylist(EnumPlayLists playLists)
        {
            string playlistPredicate = string.Empty;

            switch (playLists)
            {
            case EnumPlayLists.POP:
                playlistPredicate = "37i9dQZF1DWTwnEm1IYyoj";
                break;

            case EnumPlayLists.ROCK:
                playlistPredicate = "37i9dQZF1DX6xOPeSOGone";
                break;

            case EnumPlayLists.CLASSICAL:
                playlistPredicate = "37i9dQZF1DWWEJlAGA9gs0";
                break;

            default:
                playlistPredicate = "37i9dQZF1DXaXB8fQg7xif";
                break;
            }

            return(playlistPredicate);
        }
示例#3
0
        public PlaylistVM GetPlaylistByWeatherLocalityCondition(string locale)
        {
            ValidateLocale(locale);
            int temperature = this._openWeatherService.GetTemperatureByLocation(locale);

            EnumPlayLists recomendedPlaylist = GetSugestedPlaylistByTemperature(temperature);

            return(this._spotifyService.GetPlayList(recomendedPlaylist));
        }
示例#4
0
        public EnumPlayLists GetSugestedPlaylistByTemperature(int temperature)
        {
            EnumPlayLists playlist = EnumPlayLists.CLASSICAL;

            if (CheckIfPartyPlalist(temperature))
            {
                playlist = EnumPlayLists.PARTY;
            }

            else if (CheckIfPopPlaylist(temperature))
            {
                playlist = EnumPlayLists.POP;
            }

            else if (CheckIfRockPlaylist(temperature))
            {
                playlist = EnumPlayLists.ROCK;
            }

            return(playlist);
        }