コード例 #1
0
 public PlainSongResponse(Entities.Song song, string artistName)
 {
     Id           = song.Id;
     Name         = song.Name;
     ArtistId     = song.ArtistId;
     CategoriesId = song.CategoriesId;
     ArtistName   = artistName;
 }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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
                });
            }
        }
コード例 #6
0
ファイル: frmMain.cs プロジェクト: gitter-badger/OpenChords
 void SelectedSongChanged(object sender, Entities.Song e)
 {
     ucSongMetaDataPanel.ChangeToSong(e);
     ucSongMetaDataPanel.refreshPanel();
 }