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); }
/// <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); }