示例#1
0
            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);
            }
示例#2
0
        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));
            };
        }
示例#3
0
        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
                }
            }
        }