Ejemplo n.º 1
0
        //public Album()
        //      {
        //	tracks = new List<Track>();
        //      }
        public void GetTracks(SpotifyClient client)
        {
            var responseA = client.Albums.GetTracks(id).Result;

            var trackIds = client.Albums.GetTracks(id).Result.Items.Select(t => t.Id).ToList();

            for (int i = 0; i < trackIds.Count; i += (trackIds.Count - i) >= 50 ? 50 : (trackIds.Count - i))
            {
                var request  = new TracksRequest(trackIds.GetRange(i, ((trackIds.Count - i) >= 50 ? 50 : (trackIds.Count - i))));
                var response = client.Tracks.GetSeveral(request).Result.Tracks;
                response.ForEach(t =>
                {
                    var track = new Track()
                    {
                        duration_ms  = t.DurationMs,
                        isexplicit   = t.Explicit,
                        name         = t.Name,
                        popularity   = t.Popularity,
                        preview_url  = t.PreviewUrl,
                        track_number = t.TrackNumber,
                        type         = t.Type.ToString(),
                        uri          = t.Uri,
                        spotify_url  = t.ExternalUrls.Values.FirstOrDefault(),
                        id           = t.Id,
                        disc_number  = t.DiscNumber
                    };
                    tracks.Add(track);
                });
            }
            ;
        }
 private async void LoadTracks()
 {
     var tracksRequest = new TracksRequest();
     var tracks = await tracksRequest.List();
     if (tracks != null)
         foreach (var track in tracks)
             Tracks.Add(track);
 }
 private async void LoadTrack()
 {
     var trackService = new TracksRequest();
     var track = await trackService.Get(id);
     if (track != null)
     {
         Track = track;
         LoadPalestras();
     }
 }
Ejemplo n.º 4
0
        private async void LoadTrack()
        {
            var trackService = new TracksRequest();
            var track        = await trackService.Get(id);

            if (track != null)
            {
                Track = track;
                LoadPalestras();
            }
        }
        public List <FullTrack> GetFullTracks(List <string> ids)
        {
            var tracks = new List <FullTrack>();

            for (int i = 0; i < ids.Count; i += (ids.Count - i) >= 50 ? 50 : (ids.Count - i))
            {
                var request  = new TracksRequest(ids.Select(x => x).ToList().GetRange(i, (ids.Count - i) >= 50 ? 50 : (ids.Count - i)));
                var response = client.Tracks.GetSeveral(request).Result;
                tracks.AddRange(response.Tracks.ToList());
            }
            return(tracks);
        }
        public async Task Test_ListTracks_Artist()
        {
            var request = new TracksRequest()
            {
                TrackType = TrackType.Artist,
                Value     = "43ZHCT0cAZBISjO8DG9PnE"
            };
            var items = await _client.ListTracksAsync(request);

            Assert.IsNotNull(items?.Items);
            Assert.IsTrue(items?.Items.Count > 0);
        }
        public (List <SpotifyModels.Artist> artists, List <ChartTrack> chartTracks) GetChartData(List <ReportTrack> chartReportTracks, string countryCode, DateTime weekStart, DateTime weekEnd)
        {
            //(List<string> artistIds, List <string> albumIds, List<ChartTrack> chartTracks)
            //var artists = new Dictionary<string, SpotifyModels.Artist>();
            //var albums = new Dictionary<string, SpotifyModels.Album>();
            //var tracks = new Dictionary<string, SpotifyModels.Track>();

            var artistsx = new List <SpotifyModels.Artist>();

            var chartTracks = new List <ChartTrack>();

            for (int i = 0; i < chartReportTracks.Count; i += (chartReportTracks.Count - i) >= 50 ? 50 : (chartReportTracks.Count - i))
            {
                var request        = new TracksRequest(chartReportTracks.Select(x => x.id).ToList().GetRange(i, (chartReportTracks.Count - i) >= 50 ? 50 : (chartReportTracks.Count - i)));
                var tracksResponse = client.Tracks.GetSeveral(request).Result.Tracks;


                //need distinct artist ids
                var artists = tracksResponse.SelectMany(t => t.Artists);
                var albums  = tracksResponse.Select(t => t.Album);
                var tracks  = tracksResponse.GroupBy(t => t.Album.Id);

                artistsx = (from artist in artists
                            select new SpotifyModels.Artist()
                {
                    Id = artist.Id,
                    Name = artist.Name,
                    Type = artist.Type,
                    Uri = artist.Uri,
                    ExternalUrl = artist.ExternalUrls.Values.FirstOrDefault(),
                    albums = (from album in tracksResponse
                              .FindAll(a => a.Artists
                                       .Where(a => a.Id == artist.Id)
                                       .Any())
                              select album.Id).ToList()
                }).Distinct().ToList();

                tracksResponse.ForEach(track =>
                {
                    var chartTrack = new ChartTrack()
                    {
                        position   = chartReportTracks.Where(chartTrack => chartTrack.id == track.Id).Single().position,
                        streams    = chartReportTracks.Where(chartTrack => chartTrack.id == track.Id).Single().streams,
                        country    = countryCode,
                        week_start = weekStart.ToString("yyyy-MM-dd"),
                        week_end   = weekEnd.ToString("yyyy-MM-dd")
                    };
                });
            }

            return(artistsx, chartTracks);
        }
Ejemplo n.º 8
0
        private async void LoadTracks()
        {
            var tracksRequest = new TracksRequest();
            var tracks        = await tracksRequest.List();

            if (tracks != null)
            {
                foreach (var track in tracks)
                {
                    Tracks.Add(track);
                }
            }
        }
        public async Task Test_ListTracks_Recommended_Genre()
        {
            var request = new TracksRequest()
            {
                TrackType      = TrackType.Recommended,
                Recommendation = new RecommendationRequest()
                {
                    SeedGenre = "rock"
                }
            };
            var items = await _client.ListTracksAsync(request);

            Assert.IsNotNull(items?.Items);
            Assert.IsTrue(items?.Items.Count > 0);
        }
        public async Task Test_ListTracks_Favourite()
        {
            // Arrange
            _client.Favourites.TrackIds = new List <string> {
                "5plveMW66pe7YdXLbf060h"
            };
            // Act
            var request = new TracksRequest()
            {
                TrackType = TrackType.Favourite
            };
            var response = await _client.ListTracksAsync(request);

            // Assert
            Assert.IsNotNull(response);
        }
        public async Task Test_ListTracks_Multiple()
        {
            var request = new TracksRequest()
            {
                TrackType        = TrackType.Multiple,
                MultipleTrackIds = new List <string>
                {
                    "5YdibPcnANMEMZ2NtG840v",
                    "3gYveYzeG2u9I7dDhTfBsJ"
                },
            };
            var items = await _client.ListTracksAsync(request);

            Assert.IsNotNull(items?.Items);
            Assert.IsTrue(items?.Items.Count > 0);
        }
        public async Task Test_ListTracks_UserTop()
        {
            var request = new TracksRequest()
            {
                TrackType = TrackType.UserTop
            };
            var items = await _client.ListTracksAsync(request);

            Assert.IsNotNull(items?.Items);
            Assert.IsTrue(items?.Items.Count > 0);

            var more = await _client.ListTracksAsync(items);

            Assert.IsNotNull(more?.Items);
            Assert.IsTrue(more?.Items.Count > 0);
        }
        public async Task Test_ListTracks_Album()
        {
            var request = new TracksRequest()
            {
                TrackType = TrackType.Album,
                Value     = "6bL2a1Sq96zlG4FoQbcn7k"
            };
            var items = await _client.ListTracksAsync(request);

            Assert.IsNotNull(items?.Items);
            Assert.IsTrue(items?.Items.Count > 0);

            var more = await _client.ListTracksAsync(items);

            Assert.IsNotNull(more?.Items);
            Assert.IsTrue(more?.Items.Count > 0);
        }
        public async Task Test_ListTracks_Search()
        {
            var request = new TracksRequest()
            {
                TrackType = TrackType.Search,
                Value     = "Hello",
            };
            var items = await _client.ListTracksAsync(request);

            Assert.IsNotNull(items?.Items);
            Assert.IsTrue(items?.Items.Count > 0);

            var more = await _client.ListTracksAsync(items);

            Assert.IsNotNull(more?.Items);
            Assert.IsTrue(more?.Items.Count > 0);
        }
        public async Task Test_ListTracks_Recommended_Track()
        {
            var request = new TracksRequest()
            {
                TrackType      = TrackType.Recommended,
                Recommendation = new RecommendationRequest()
                {
                    SeedTrackIds = new List <string>()
                    {
                        "3gYveYzeG2u9I7dDhTfBsJ"
                    }
                }
            };
            var items = await _client.ListTracksAsync(request);

            Assert.IsNotNull(items?.Items);
            Assert.IsTrue(items?.Items.Count > 0);
        }
        public async Task Test_ListTracks_Recommended_Artist()
        {
            var request = new TracksRequest()
            {
                TrackType      = TrackType.Recommended,
                Recommendation = new RecommendationRequest()
                {
                    SeedArtistIds = new List <string>()
                    {
                        "6qqNVTkY8uBg9cP3Jd7DAH"
                    }
                }
            };
            var items = await _client.ListTracksAsync(request);

            Assert.IsNotNull(items?.Items);
            Assert.IsTrue(items?.Items.Count > 0);
        }