Пример #1
0
        private void NewSong_Click(object sender)
        {
            IsInEditMode = true;

            Songs.Add(new SongData("Title", "Author")
            {
                Lyric = new List <SongLyric>()
                {
                    new SongLyric()
                    {
                        Text = "Verse 1"
                    }
                }
            });

            SongData lastSong = Songs[Songs.Count - 1];

            SongData = lastSong;

            SongLyrics.Clear();

            foreach (SongLyric lyric in lastSong.Lyric)
            {
                SongLyrics.Add(lyric);
            }
        }
Пример #2
0
        public async Task <ActionResult> Get([Required] string artist, [Required] string song)
        {
            var apiURL   = "https://api.lyrics.ovh/v1/" + artist + "/" + song;
            var textInfo = CultureInfo.CurrentCulture.TextInfo;
            var lyrics   = new SongLyrics();

            var httpClient = new HttpClient();
            var response   = await httpClient.GetAsync(apiURL);

            if (response.IsSuccessStatusCode)
            {
                var content = await response.Content.ReadAsStringAsync();

                lyrics = JsonConvert.DeserializeObject <SongLyrics>(content);
                if (lyrics.Lyrics != string.Empty)
                {
                    lyrics.Artist    = textInfo.ToTitleCase(artist);
                    lyrics.SongTitle = textInfo.ToTitleCase(song);
                }
                else
                {
                    return(NotFound("Lyrics not found."));
                }
            }

            return(Ok(lyrics));
        }
Пример #3
0
        private void DiscardSong_Click(object sender)
        {
            IsInEditMode = false;

            SongData selectedItem = Songs[Songs.Count - 1];

            SongData = selectedItem;
            SongLyrics.Clear();
            Songs.Remove(selectedItem);
            SongData = null;
        }
Пример #4
0
        private void DeleteSong_Click(object sender)
        {
            SongData selectedItem = SongData;

            if (selectedItem != null)
            {
                selectedItem.Delete();
                SongLyrics.Clear();
                Songs.Remove(selectedItem);
                SongData = null;
            }
        }
Пример #5
0
        private void DiscardEdit_Click(object sender)
        {
            IsInEditMode = false;

            SongData selectedItem = SongData;

            selectedItem.Delete();

            SongData = prevSong;
            SongLyrics.Clear();

            foreach (SongLyric lyric in prevSong.Lyric)
            {
                SongLyrics.Add(lyric);
            }
            prevSong.Save();
        }
Пример #6
0
        private void Add_Lyric(object sender)
        {
            SongData selectedItem = SongData;

            selectedItem.Lyric.Add(
                new SongLyric()
            {
                Text = "New Lyric"
            });

            SongLyrics.Clear();

            foreach (SongLyric lyric in selectedItem.Lyric)
            {
                SongLyrics.Add(lyric);
            }
        }
Пример #7
0
        /// <summary>
        /// Gets song lyrics based on artist and song title.
        /// Returns null if lyrics not found, could be by artist or song.
        /// </summary>
        /// <param name="artist">Case insensitive artist name</param>
        /// <param name="songTitle">Case insensitive song title</param>
        /// <returns></returns>
        public SongLyrics GetLyrics(string artist, string songTitle)
        {
            client.BaseAddress = new Uri("https://api.lyrics.ovh/v1/");
            // note https://api.lyrics.ovh/v1/artistName/songTitle
            HttpResponseMessage response = client.GetAsync($"{artist}/{songTitle}").Result;

            if (response.IsSuccessStatusCode)
            {
                string output = response.Content.ReadAsStringAsync().Result;
                output = output.Replace("\\n", Environment.NewLine);
                SongLyrics SL = JsonConvert.DeserializeObject <SongLyrics>(output);

                return(SL);
            }
            else
            {
                return(null); // || or throw new ArgumentException("Song or artist does not exist");
            }
        }