Пример #1
0
        private int GetNameDistanceForArtistSearchResult(string query, ArtistSearchResults artist)
        {
            var minDist = StringUtils.GetLevenshteinDistanceWordOrderIndependent(query, artist.Names.En);

            foreach (var alias in artist.Aliases)
            {
                minDist = Math.Min(minDist, StringUtils.GetLevenshteinDistanceWordOrderIndependent(query, alias));
            }

            return(minDist);
        }
Пример #2
0
        /// <summary>
        /// Getting the list of artists via iTunes API using search string
        /// </summary>
        /// <param name="searchString">Search String</param>
        /// <returns>The list of Artists</returns>
        internal static List <Artist> GetArtists(string searchString)
        {
            // Trying to get data online and throwing exception or returning null if no success
            ArtistSearchResults searchResults = null;
            string url = _urlMediaEntity + _entityValueArtist + _searchStringParam + HttpUtility.UrlEncode(searchString);

            try
            {
                using (HttpClient client = new HttpClient())
                {
                    HttpResponseMessage response = client.GetAsync(url).Result;
                    response.EnsureSuccessStatusCode();
                    string json = response.Content.ReadAsStringAsync().Result;
                    searchResults = JsonConvert.DeserializeObject <ArtistSearchResults>(json);
                }
            }
            catch
            {
                throw;
            }
            if (searchResults == null)
            {
                return(null);
            }
            // If there results are not null and no exceptions converting results to the internal Artists list format and return it
            List <Artist> artists = new List <Artist>();

            if (searchResults != null && searchResults.resultCount > 0)
            {
                foreach (ArtistResultWrapper result in searchResults.results)
                {
                    artists.Add(new Artist
                    {
                        Id     = result.artistId,
                        Name   = result.artistName,
                        Update = DateTime.Now
                    });
                }
            }
            return(artists);
        }