public Song Map(SongSelectFile source)
        {
            var sng = new Song
            {
                // CCLI ID
                CcliIdentifier = source.CcliIdentifier,

                // Title
                Title = source.Title,

                // Copyright
                Copyright = source.Copyright,

                // Administration / Rights management
                RightsManagement = source.Admin
            };

            // Author
            var a = new SongAuthor
            {
                Name = source.Author
            };

            sng.Authors.Add(a);

            // Themes
            sng.Themes.AddRange(source.Themes);

            // Key
            sng.Key = source.Key;

            // Verses
            foreach (var v in source.Verses)
            {
                var p = new SongPart
                {
                    Caption = v.Caption
                };
                var s = new SongSlide();
                s.Lines.AddRange(v.Lines);
                p.Slides.Add(s);
                sng.Parts.Add(p);
            }

            return(sng);
        }
Esempio n. 2
0
        public static Song GetExpectedSongExtended()
        {
            Song song = PowerPraiseTestUtil.GetExpectedSong();

            song.Comment = "Test";
            song.Guid    = new Guid("78dd30b2-078b-4eef-9767-dc41a6e6ab27");
            song.QualityIssues.Add(SongQualityAssuranceIndicator.Translation);
            song.QualityIssues.Add(SongQualityAssuranceIndicator.Segmentation);
            song.CcliIdentifier = "12123";
            SongAuthor a = new SongAuthor
            {
                Name = "asd as d"
            };

            song.Authors.Add(a);
            song.Publisher        = "Sparrow Records";
            song.RightsManagement = "Verlag ABC";

            return(song);
        }
Esempio n. 3
0
        public static ExtendedPowerPraiseSong GetExpectedExtendedPowerPraiseSong()
        {
            ExtendedPowerPraiseSong ppl = new ExtendedPowerPraiseSong
            {
                Title    = "Näher, mein Gott, zu Dir",
                Language = "Deutsch",
                Category = "Anbetung",
                Comment  = "Test",
                Guid     = new Guid("78dd30b2-078b-4eef-9767-dc41a6e6ab27")
            };

            // General

            ppl.QualityIssues.Add(SongQualityAssuranceIndicator.Translation);
            ppl.QualityIssues.Add(SongQualityAssuranceIndicator.Segmentation);
            ppl.CcliIdentifier = "12123";
            SongAuthor a = new SongAuthor
            {
                Name = "asd as d"
            };

            ppl.Author.Add(a);
            ppl.Publisher        = "Sparrow Records";
            ppl.RightsManagement = "Verlag ABC";

            // Songtext
            PowerPraiseSong.Part part = new PowerPraiseSong.Part
            {
                Caption = "Teil 1"
            };

            PowerPraiseSong.Slide slide = new PowerPraiseSong.Slide
            {
                MainSize   = 42,
                Background = new ImageBackground("Blumen\\Blume 3.jpg")
            };
            slide.Lines.Add("Näher, mein Gott, zu Dir,");
            slide.Lines.Add("sei meine Bitt'!");
            slide.Lines.Add("Näher, o Herr, zu Dir");
            slide.Lines.Add("mit jedem Schritt.");
            part.Slides.Add(slide);

            slide = new PowerPraiseSong.Slide
            {
                MainSize   = 44,
                Background = new ImageBackground("Blumen\\Blume 3.jpg")
            };
            slide.Lines.Add("Nur an dem Herzen Dein");
            slide.Lines.Add("kann ich geborgen sein;");
            slide.Lines.Add("deshalb die Bitte mein:");
            slide.Lines.Add("Näher zu Dir!");
            part.Slides.Add(slide);
            ppl.Parts.Add(part);

            part = new PowerPraiseSong.Part
            {
                Caption = "Teil 2"
            };

            slide = new PowerPraiseSong.Slide
            {
                MainSize   = 42,
                Background = new ImageBackground("Blumen\\Blume 3.jpg")
            };
            slide.Lines.Add("Näher, mein Gott, zu Dir!");
            slide.Lines.Add("Ein jeder Tag");
            slide.Lines.Add("soll es neu zeigen mir,");
            slide.Lines.Add("was er vermag:");
            part.Slides.Add(slide);

            slide = new PowerPraiseSong.Slide
            {
                MainSize   = 42,
                Background = new ImageBackground("Blumen\\Blume 3.jpg")
            };
            slide.Lines.Add("Wie seiner Gnade Macht,");
            slide.Lines.Add("Erlösung hat gebracht,");
            slide.Lines.Add("in uns're Sündennacht.");
            slide.Lines.Add("Näher zu Dir!");
            part.Slides.Add(slide);
            ppl.Parts.Add(part);

            part = new PowerPraiseSong.Part
            {
                Caption = "Teil 3"
            };

            slide = new PowerPraiseSong.Slide
            {
                MainSize   = 42,
                Background = new ImageBackground("Blumen\\Blume 3.jpg")
            };
            slide.Lines.Add("Näher, mein Gott, zu Dir!");
            slide.Lines.Add("Dich bet' ich an.");
            slide.Lines.Add("Wie vieles hast an mir,");
            slide.Lines.Add("Du doch getan!");
            part.Slides.Add(slide);

            slide = new PowerPraiseSong.Slide
            {
                MainSize   = 42,
                Background = new ImageBackground("Blumen\\Blume 3.jpg")
            };
            slide.Lines.Add("Von Banden frei und los,");
            slide.Lines.Add("ruh' ich in Deinem Schoss.");
            slide.Lines.Add("Ja, Deine Gnad' ist gross!");
            slide.Lines.Add("Näher zu Dir!");
            part.Slides.Add(slide);
            ppl.Parts.Add(part);

            // Order
            ppl.Order.Add(ppl.Parts[0]);
            ppl.Order.Add(ppl.Parts[1]);
            ppl.Order.Add(ppl.Parts[2]);

            // Copyright
            ppl.CopyrightText.Add("Text und Musik: Lowell Mason, 1792-1872");
            ppl.Formatting.CopyrightTextPosition = AdditionalInformationPosition.LastSlide;

            // Source
            ppl.SourceText = "grünes Buch 339";
            ppl.Formatting.SourceTextPosition = AdditionalInformationPosition.FirstSlide;

            // Formatting
            ppl.Formatting.MainText = new PowerPraiseSongFormatting.FontFormatting
            {
                Font           = new Font("Times New Roman", 44, FontStyle.Bold | FontStyle.Italic),
                Color          = Color.White,
                OutlineWidth   = 30,
                ShadowDistance = 15
            };
            ppl.Formatting.TranslationText = new PowerPraiseSongFormatting.FontFormatting
            {
                Font           = new Font("Times New Roman", 20, FontStyle.Regular),
                Color          = Color.White,
                OutlineWidth   = 30,
                ShadowDistance = 20
            };
            ppl.Formatting.CopyrightText = new PowerPraiseSongFormatting.FontFormatting
            {
                Font           = new Font("Times New Roman", 14, FontStyle.Regular),
                Color          = Color.White,
                OutlineWidth   = 30,
                ShadowDistance = 20
            };
            ppl.Formatting.SourceText = new PowerPraiseSongFormatting.FontFormatting
            {
                Font           = new Font("Times New Roman", 30, FontStyle.Regular),
                Color          = Color.White,
                OutlineWidth   = 30,
                ShadowDistance = 20
            };
            ppl.Formatting.Outline = new PowerPraiseSongFormatting.OutlineFormatting
            {
                Color   = Color.Black,
                Enabled = false
            };
            ppl.Formatting.Shadow = new PowerPraiseSongFormatting.ShadowFormatting
            {
                Color     = Color.Black,
                Direction = 125,
                Enabled   = true
            };

            // Line spacing
            ppl.Formatting.MainLineSpacing        = 30;
            ppl.Formatting.TranslationLineSpacing = 20;

            // Text orientation
            ppl.Formatting.TextOrientation     = new TextOrientation(VerticalOrientation.Middle, HorizontalOrientation.Left);
            ppl.Formatting.TranslationPosition = TranslationPosition.Inline;

            // Borders
            ppl.Formatting.Borders = new PowerPraiseSongFormatting.TextBorders
            {
                TextLeft        = 50,
                TextTop         = 40,
                TextRight       = 60,
                TextBottom      = 70,
                CopyrightBottom = 30,
                SourceTop       = 20,
                SourceRight     = 40
            };

            return(ppl);
        }
Esempio n. 4
0
 protected bool Equals(SongAuthor other)
 {
     return(Type == other.Type && string.Equals(Name, other.Name));
 }
Esempio n. 5
0
        public void LoadTest()
        {
            SongSelectFileMapper mapper = new SongSelectFileMapper();

            SongSelectFile source = new SongSelectFile
            {
                Title     = "Ein Lied für Gott",
                Author    = "Muster, Hans",
                Copyright = "Gemeinfrei (Public Domain)",
                Admin     = "Verlag ABC",
                Key       = "E"
            };

            source.Themes.Add("Celebration");
            source.Themes.Add("God's Attributes");
            source.Themes.Add("Love");
            source.Themes.Add("Joy");

            var verse = new SongSelectFile.Verse
            {
                Caption = "Vers 1"
            };

            verse.Lines.Add("Lorem ipsum dolor sit amet,");
            verse.Lines.Add("consectetur adipiscing elit.");
            verse.Lines.Add("Vivamus odio massa,");
            verse.Lines.Add("lacinia in mollis quis,");
            verse.Lines.Add("vehicula sed justo");
            source.Verses.Add(verse);

            verse = new SongSelectFile.Verse
            {
                Caption = "Vers 2"
            };
            verse.Lines.Add("Nunc cursus libero non quam lobortis");
            verse.Lines.Add("ac pharetra leo facilisis.");
            verse.Lines.Add("Proin tortor tellus,");
            verse.Lines.Add("fermentum mattis euismod eu,");
            verse.Lines.Add("faucibus vel justo.");
            source.Verses.Add(verse);

            verse = new SongSelectFile.Verse
            {
                Caption = "Vers 3"
            };
            verse.Lines.Add("Fusce pellentesque rhoncus felis,");
            verse.Lines.Add("eu convallis ante tempus a.");
            verse.Lines.Add("Cum sociis natoque penatibus");
            verse.Lines.Add("et magnis dis parturient montes,");
            verse.Lines.Add("nascetur ridiculus mus.");
            source.Verses.Add(verse);

            Song expected = new Song
            {
                Title = "Ein Lied für Gott"
            };

            expected.Themes.Add("Celebration");
            expected.Themes.Add("God's Attributes");
            expected.Themes.Add("Love");
            expected.Themes.Add("Joy");
            var aut = new SongAuthor
            {
                Name = "Muster, Hans"
            };

            expected.Authors.Add(aut);
            expected.Copyright        = "Gemeinfrei (Public Domain)";
            expected.RightsManagement = "Verlag ABC";
            expected.Key = "E";

            var part = new SongPart
            {
                Caption = "Vers 1"
            };
            var slide = new SongSlide();

            slide.Lines.Add("Lorem ipsum dolor sit amet,");
            slide.Lines.Add("consectetur adipiscing elit.");
            slide.Lines.Add("Vivamus odio massa,");
            slide.Lines.Add("lacinia in mollis quis,");
            slide.Lines.Add("vehicula sed justo");
            part.Slides.Add(slide);
            expected.Parts.Add(part);

            part = new SongPart
            {
                Caption = "Vers 2"
            };
            slide = new SongSlide();
            slide.Lines.Add("Nunc cursus libero non quam lobortis");
            slide.Lines.Add("ac pharetra leo facilisis.");
            slide.Lines.Add("Proin tortor tellus,");
            slide.Lines.Add("fermentum mattis euismod eu,");
            slide.Lines.Add("faucibus vel justo.");
            part.Slides.Add(slide);
            expected.Parts.Add(part);

            part = new SongPart
            {
                Caption = "Vers 3"
            };
            slide = new SongSlide();
            slide.Lines.Add("Fusce pellentesque rhoncus felis,");
            slide.Lines.Add("eu convallis ante tempus a.");
            slide.Lines.Add("Cum sociis natoque penatibus");
            slide.Lines.Add("et magnis dis parturient montes,");
            slide.Lines.Add("nascetur ridiculus mus.");
            part.Slides.Add(slide);
            expected.Parts.Add(part);

            Song actual = mapper.Map(source);

            Assert.AreEqual(expected.Title, actual.Title, "Wrong song title");
            Assert.AreEqual(expected.Language, actual.Language, "Wrong language");
            Assert.AreEqual(expected.Copyright, actual.Copyright, "Wrong copyright");
            Assert.AreEqual(expected.RightsManagement, actual.RightsManagement, "Wrong RightsManagement");
            Assert.AreEqual(expected.Key, actual.Key, "Wrong key");
            for (int i = 0; i < expected.Themes.Count; i++)
            {
                Assert.AreEqual(expected.Themes[i], actual.Themes[i], "Wrong theme");
            }
            for (int i = 0; i < expected.Authors.Count; i++)
            {
                Assert.AreEqual(expected.Authors[i].Name, actual.Authors[i].Name, "Wrong Author");
            }

            Assert.AreEqual(expected.Parts.Count, actual.Parts.Count, "Parts incomplete");
            for (int i = 0; i < expected.Parts.Count; i++)
            {
                Assert.AreEqual(expected.Parts[i].Caption, actual.Parts[i].Caption, "Wrong verse name in verse " + i);
                Assert.AreEqual(expected.Parts[i].Slides.Count, actual.Parts[i].Slides.Count, "Slides incomplete in verse " + i);
                for (int j = 0; j < expected.Parts[i].Slides.Count; j++)
                {
                    Assert.AreEqual(expected.Parts[i].Slides[j].Lines.Count, actual.Parts[i].Slides[j].Lines.Count, "Slide lines incomplete in verse " + i + " slide " + j);
                    for (int k = 0; k < expected.Parts[i].Slides[j].Lines.Count; k++)
                    {
                        Assert.AreEqual(expected.Parts[i].Slides[j].Lines[k], actual.Parts[i].Slides[j].Lines[k], "Wrong slide lyrics");
                    }
                }
            }
        }