public static YandexTrack FromJson(JToken jTrack) { try { var track = new YandexTrack { Id = jTrack.GetString("id"), RealId = jTrack.GetString("realId"), Title = jTrack.GetString("title"), Major = YandexMajor.FromJson(jTrack.Contains("major")), Available = jTrack.GetBool("available"), AvailableForPremiumUsers = jTrack.GetBool("availableForPremiumUsers"), Albums = jTrack.ContainField("albums") ? YandexAlbum.FromJsonArray(jTrack["albums"].ToObject <JArray>()) : null, DurationMS = jTrack["durationMs"].ToObject <int>(), StorageDir = jTrack.GetString("storageDir"), FileSize = jTrack.GetInt("fileSize"), Artists = YandexArtist.FromJsonArray(jTrack["artists"].ToObject <JArray>()), OgImage = jTrack.GetString("ogImage") }; return(track); } catch (Exception e) { Console.WriteLine(e); throw; } return(null); }
public List <IYandexSearchable> Search(string searchText, YandexSearchType searchType, int page = 0) { var listResult = new List <IYandexSearchable>(); var request = GetRequest(_settings.GetSearchURL(searchText, searchType, page), WebRequestMethods.Http.Get); using (var response = (HttpWebResponse)request.GetResponse()) { var json = GetDataFromResponse(response); var fieldName = searchType.ToString().ToLower(); var jArray = (JArray)json[fieldName]["items"]; if (searchType == YandexSearchType.Tracks) { listResult = YandexTrack.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList(); } else if (searchType == YandexSearchType.Artists) { listResult = YandexArtist.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList(); } else if (searchType == YandexSearchType.Albums) { listResult = YandexAlbum.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList(); } else if (searchType == YandexSearchType.Playlists) { listResult = YandexPlaylist.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList(); } else if (searchType == YandexSearchType.Users) { listResult = YandexUser.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList(); } } return(listResult); }