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); } }
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)); }
private void DiscardSong_Click(object sender) { IsInEditMode = false; SongData selectedItem = Songs[Songs.Count - 1]; SongData = selectedItem; SongLyrics.Clear(); Songs.Remove(selectedItem); SongData = null; }
private void DeleteSong_Click(object sender) { SongData selectedItem = SongData; if (selectedItem != null) { selectedItem.Delete(); SongLyrics.Clear(); Songs.Remove(selectedItem); SongData = null; } }
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(); }
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); } }
/// <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"); } }