Пример #1
0
        /// <summary>
        /// search by track title
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public async Task <IActionResult> OnPostSearchByTrackTitleAsync(string search)
        {
            using (HttpClient client = new HttpClient())
            {
                var response = await client.GetAsync($"https://newapi.beeptunes.com/public/search?albumCount=0&artistCount=0&text={search}&trackCount=100");

                List <TrackQueryResult> tracks = new List <TrackQueryResult>();

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    BpSearchResponseModel bpResponse = JsonConvert.DeserializeObject <BpSearchResponseModel>(await response.Content.ReadAsStringAsync());
                    foreach (var track in bpResponse.Tracks)
                    {
                        if (track.FirstArtists != null && track.FirstArtists.Length > 0)
                        {
                            string albumName     = "";
                            var    responseAlbum = await client.GetAsync($"https://newapi.beeptunes.com/public/album/info/?albumId={track.Album_Id}");

                            if (responseAlbum.StatusCode == HttpStatusCode.OK)
                            {
                                NameIdUrlImage nameIdUrl = JsonConvert.DeserializeObject <NameIdUrlImage>(await responseAlbum.Content.ReadAsStringAsync());
                                albumName = nameIdUrl.Name;
                            }

                            tracks.Add
                            (
                                new TrackQueryResult()
                            {
                                Id         = track.Id,
                                Name       = track.Name,
                                Url        = track.Url,
                                AlbumId    = track.Album_Id,
                                AlbumName  = albumName,
                                AlbunUrl   = $"https://beeptunes.com/album/{track.Album_Id}",
                                ArtistId   = track.FirstArtists[0].Id,
                                ArtistName = track.FirstArtists[0].ArtisticName,
                                ArtistUrl  = track.FirstArtists[0].Url,
                                Image      = track.PrimaryImage
                            }
                            );
                        }
                    }
                }

                return(new PartialViewResult()
                {
                    ViewName = "_SpotifySearchPartial",
                    ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider(), new ModelStateDictionary())
                    {
                        Model = new _SpotifySearchPartialModel()
                        {
                            Tracks = tracks.ToArray()
                        }
                    }
                });
            }
        }
Пример #2
0
        /// <summary>
        /// search by artists name
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public async Task <IActionResult> OnPostSearchByArtistNameAsync(string search)
        {
            using (HttpClient client = new HttpClient())
            {
                var response = await client.GetAsync($"https://newapi.beeptunes.com/public/search?albumCount=0&artistCount=100&text={search}&trackCount=0");

                List <NameIdUrlImage> artists = new List <NameIdUrlImage>();

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    BpSearchResponseModel bpResponse = JsonConvert.DeserializeObject <BpSearchResponseModel>(await response.Content.ReadAsStringAsync());
                    foreach (var artist in bpResponse.Artists)
                    {
                        artists.Add
                        (
                            new NameIdUrlImage()
                        {
                            Id    = artist.Id,
                            Name  = artist.ArtisticName,
                            Url   = artist.Url,
                            Image = artist.Picture
                        }
                        );
                    }
                }


                return(new PartialViewResult()
                {
                    ViewName = "_SpotifySearchPartial",
                    ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider(), new ModelStateDictionary())
                    {
                        Model = new _SpotifySearchPartialModel()
                        {
                            Artists = artists.ToArray()
                        }
                    }
                });
            }
        }