private static SearchLyricResult LoadSearchLyricResult(XmlTextReader reader) { var result = new SearchLyricResult(); while (reader.NodeType != XmlNodeType.EndElement) { if (reader.IsStartElement()) { if (string.Equals(reader.Name, nameof(SearchLyricResult.TrackChecksum), StringComparison.OrdinalIgnoreCase)) { result.TrackChecksum = Read(reader); } else if (string.Equals(reader.Name, nameof(SearchLyricResult.TrackId), StringComparison.OrdinalIgnoreCase)) { result.TrackId = Read(reader); } else if (string.Equals(reader.Name, nameof(SearchLyricResult.LyricChecksum), StringComparison.OrdinalIgnoreCase)) { result.LyricChecksum = Read(reader); } else if (string.Equals(reader.Name, nameof(SearchLyricResult.LyricId), StringComparison.OrdinalIgnoreCase)) { result.LyricId = Read(reader); } else if (string.Equals(reader.Name, nameof(SearchLyricResult.SongUrl), StringComparison.OrdinalIgnoreCase)) { result.SongUrl = Read(reader); } else if (string.Equals(reader.Name, nameof(SearchLyricResult.ArtistUrl), StringComparison.OrdinalIgnoreCase)) { result.ArtistUrl = Read(reader); } else if (string.Equals(reader.Name, nameof(SearchLyricResult.Artist), StringComparison.OrdinalIgnoreCase)) { result.Artist = Read(reader); } else if (string.Equals(reader.Name, nameof(SearchLyricResult.Song), StringComparison.OrdinalIgnoreCase)) { result.Song = Read(reader); } else if (string.Equals(reader.Name, nameof(SearchLyricResult.SongRank), StringComparison.OrdinalIgnoreCase)) { result.SongRank = Read(reader); } } } return(result); }
public ListaResultados(List <SearchLyricResult> lista) { InitializeComponent(); resultList.ItemsSource = lista; resultList.ItemSelected += async(sender, e) => { var item = e.SelectedItem as SearchLyricResult; //await DisplayAlert("Seleccionado", "elemento seleccionado: " + item.ToString(), "Entendido"); // Crear nueva canción SearchLyricResult search = item; LyricsWS lyricsWS = new LyricsWS(); GetLyricResult lyricResult = await lyricsWS.GetSong(search.lyricId, search.lyricChecksum); Song song = new Song(lyricResult); // Pasarla await Navigation.PushAsync(new DetalleCancion(song, true)); }; }
protected virtual Task <GetLyricResult> Lookup(SearchLyricResult searchResult) { var baseUrl = this.BaseUrl.Value; if (string.IsNullOrEmpty(baseUrl)) { baseUrl = BASE_URL; } var url = string.Format( "{0}/GetLyric?lyricId={1}&lyricChecksum={2}", baseUrl, Uri.EscapeDataString(searchResult.LyricId), Uri.EscapeDataString(searchResult.LyricChecksum) ); Logger.Write(this, LogLevel.Debug, "Querying the API: {0}", url); var request = WebRequest.Create(url); using (var response = (HttpWebResponse)request.GetResponse()) { if (response.StatusCode != HttpStatusCode.OK) { Logger.Write(this, LogLevel.Warn, "Status code does not indicate success."); #if NET40 return(TaskEx.FromResult(default(GetLyricResult))); #else return(Task.FromResult(default(GetLyricResult))); #endif } using (var stream = response.GetResponseStream()) { var result = Serializer.LoadGetLyricResult(stream); #if NET40 return(TaskEx.FromResult(result)); #else return(Task.FromResult(result)); #endif } } }