public PlainSongResponse(Entities.Song song, string artistName) { Id = song.Id; Name = song.Name; ArtistId = song.ArtistId; CategoriesId = song.CategoriesId; ArtistName = artistName; }
/// <summary>Only use this method for creation of a song</summary> internal static Entities.Song ToEntity(Song song, Entities.User user, MintPlayerContext mintplayer_context) { if (song == null) { return(null); } var entity_song = new Entities.Song { Id = song.Id, Title = song.Title, Released = song.Released }; if (song.Artists != null) { entity_song.Artists = song.Artists.Select(artist => { var entity_artist = mintplayer_context.Artists.Find(artist.Id); return(new Entities.ArtistSong(entity_artist, entity_song)); }).ToList(); } entity_song.Lyrics = new List <Entities.Lyrics>(new[] { new Entities.Lyrics { Song = entity_song, User = user, Text = song.Lyrics.Text, Timeline = song.Lyrics.Timeline }, }); if (song.Media != null) { entity_song.Media = song.Media.Select(m => { var medium = MediumRepository.ToEntity(m, mintplayer_context); medium.Subject = entity_song; return(medium); }).ToList(); } #region Tags if (song.Tags != null) { entity_song.Tags = song.Tags.Select(t => { var tag = mintplayer_context.Tags.Find(t.Id); return(new Entities.SubjectTag(entity_song, tag)); }).ToList(); } #endregion return(entity_song); }
public void TestGermanNotesTranspose() { Settings.initialize(); Settings.GlobalApplicationSettings.KeyNotationLanguage = Entities.FileAndFolderSettings.KeyNotationLanguageType.German; Entities.Song song = new Entities.Song() { lyrics = @"[V] .A .B .H .C .C# .D .D# .E .F .F# .G .G#", presentation = "V" }; SongProcessor.transposeKeyUp(song); string expectedOutput = @"[V] .B .H .C .C# .D .D# .E .F .F# .G .G# .A"; expectedOutput = expectedOutput.Replace("\r\n", "\n"); StringAssert.Equals(song.lyrics, expectedOutput); }
public void TestEnglishNotesTranspose() { Settings.initialize(); Entities.Song song = new Entities.Song() { lyrics = @"[V] .A .A# .B .C .C# .D .D# .E .F .F# .G .G#", presentation = "V" }; SongProcessor.transposeKeyUp(song); string expectedOutput = @"[V] .A# .B .C .C# .D .D# .E .F .F# .G .G# .A"; expectedOutput = expectedOutput.Replace("\r\n", "\n"); StringAssert.Equals(song.lyrics, expectedOutput); }
internal static Song ToDto(Entities.Song song, bool include_relations, bool include_invisible_media) { if (song == null) { return(null); } if (include_relations) { var lastLyric = song.Lyrics == null ? null : song.Lyrics.OrderBy(l => l.UpdatedAt).LastOrDefault(); return(new Song { Id = song.Id, Title = song.Title, Released = song.Released, Lyrics = new Lyrics { Text = lastLyric?.Text, Timeline = lastLyric?.Timeline }, Text = song.Text, Description = song.Description, YoutubeId = song.YoutubeId, DailymotionId = song.DailymotionId, PlayerInfo = song.PlayerInfo, DateUpdate = song.DateUpdate ?? song.DateInsert, Artists = song.Artists .Where(@as => @as.Credited) .Select(@as => ArtistRepository.ToDto(@as.Artist, false, false)) .ToList(), UncreditedArtists = song.Artists .Where(@as => [email protected]) .Select(@as => ArtistRepository.ToDto(@as.Artist, false, false)) .ToList(), Media = song.Media == null ? null : song.Media .Where(m => m.Type.Visible | include_invisible_media) .Select(medium => MediumRepository.ToDto(medium, true)) .ToList(), Tags = song.Tags == null ? null : song.Tags .Select(st => TagRepository.ToDto(st.Tag)) .ToList() }); } else { var lastLyric = song.Lyrics == null ? null : song.Lyrics.OrderBy(l => l.UpdatedAt).LastOrDefault(); return(new Song { Id = song.Id, Title = song.Title, Released = song.Released, Lyrics = new Lyrics { Text = lastLyric?.Text, Timeline = lastLyric?.Timeline }, Text = song.Text, Description = song.Description, YoutubeId = song.YoutubeId, DailymotionId = song.DailymotionId, PlayerInfo = song.PlayerInfo, DateUpdate = song.DateUpdate ?? song.DateInsert }); } }
void SelectedSongChanged(object sender, Entities.Song e) { ucSongMetaDataPanel.ChangeToSong(e); ucSongMetaDataPanel.refreshPanel(); }