Ejemplo n.º 1
0
        public async Task <SearchArtistResults> SearchArtistsAsync(string genre, string fromYear = "", string toYear = "")
        {
            HttpClient client = GetDefaultClient();
            string     url    = "/v1/search?q=tag%3Ahipster%20";

            if (!string.IsNullOrWhiteSpace(genre))
            {
                genre = genre.Replace(" ", "%20").Replace("\"", "");
                url  += "genre%3A%22" + genre + "%22";
            }

            if (!string.IsNullOrWhiteSpace(fromYear) && !string.IsNullOrWhiteSpace(toYear))
            {
                url += "year%3A" + fromYear + "-" + toYear;
            }
            else if (!string.IsNullOrWhiteSpace(fromYear) || !string.IsNullOrWhiteSpace(toYear))
            {
                url += "year%3A" + fromYear + toYear;
            }

            url += "&type=artist";

            string response = await client.GetStringAsync(url);

            SearchArtistResults artistResponse = JsonConvert.DeserializeObject <SearchArtistResults>(response);

            return(artistResponse);
        }
Ejemplo n.º 2
0
        public async Task <ResultViewModel> GetUrlSearchResult(string url)
        {
            Search searchSpotifyApi           = new Search();
            SearchArtistResults searchResults = await searchSpotifyApi.SearchNextArtistsAsync(url);

            ResultViewModel finalResults = await searchSpotifyApi.GeneratePresentationModel(searchResults);

            return(finalResults);
        }
Ejemplo n.º 3
0
        public async Task <SearchArtistResults> SearchNextArtistsAsync(string nextUrl)
        {
            HttpClient client   = GetDefaultClient();
            string     response = await client.GetStringAsync(nextUrl);

            SearchArtistResults artistResponse = JsonConvert.DeserializeObject <SearchArtistResults>(response);

            return(artistResponse);
        }
Ejemplo n.º 4
0
        public async Task <ResultViewModel> GetSearchResult(SearchCriteria searchCriteria)
        {
            Search searchSpotifyApi           = new Search();
            SearchArtistResults searchResults = await searchSpotifyApi.SearchArtistsAsync(searchCriteria.Genre, searchCriteria.FromYear, searchCriteria.ToYear);

            ResultViewModel finalResults = await searchSpotifyApi.GeneratePresentationModel(searchResults);

            return(finalResults);
        }
Ejemplo n.º 5
0
        public async Task <ResultViewModel> GeneratePresentationModel(SearchArtistResults searchResults)
        {
            SearchTrackResults searchTracks;
            BaseTrack          previewTrack;
            ResultViewModel    finalResults = new ResultViewModel();

            finalResults.viewArtists = new List <ViewArtist>();
            finalResults.Limit       = searchResults.Artists.Limit;
            finalResults.Next        = searchResults.Artists.Next;
            finalResults.Total       = searchResults.Artists.Total;
            finalResults.Previous    = searchResults.Artists.Previous;
            finalResults.Offset      = searchResults.Artists.Offset;

            foreach (var artist in searchResults.Artists.Items)
            {
                ViewArtist viewArtist = new ViewArtist(artist);

                searchTracks = await SearchTracksAsync(artist.Name);

                if (searchTracks.Tracks.Items.Count() != 0)
                {
                    previewTrack = searchTracks.Tracks.Items.FirstOrDefault(x => x.PreviewURL != null);
                    if (previewTrack != null)
                    {
                        viewArtist.PreviewTrack    = new ViewTrack(previewTrack);
                        viewArtist.HasPreviewTrack = true;
                        viewArtist.HasTracks       = true;
                    }
                    else
                    {
                        viewArtist.PreviewTrack    = new ViewTrack(searchTracks.Tracks.Items[0]);
                        viewArtist.HasPreviewTrack = false;
                        viewArtist.HasTracks       = true;
                    }
                }
                else
                {
                    viewArtist.HasPreviewTrack = false;
                    viewArtist.HasTracks       = false;
                }

                finalResults.viewArtists.Add(viewArtist);
            }

            return(finalResults);
        }