Ejemplo n.º 1
0
        public IReadOnlyCollection <VerseAndText> GetBibleTextsArray(
            IReadOnlyList <BookChapter> chapters,
            int bibleBook,
            ChapterAndVersesSpec chapterAndVerses,
            FormattingOptions formattingOptions)
        {
            var result = new List <VerseAndText>();

            foreach (var vs in chapterAndVerses.ContiguousVerses)
            {
                for (var verse = vs.StartVerse; verse <= vs.EndVerse; ++verse)
                {
                    string s = GetBibleText(chapters, bibleBook, vs.Chapter, verse, formattingOptions);
                    if (!string.IsNullOrEmpty(s))
                    {
                        result.Add(new VerseAndText
                        {
                            BookNumber    = bibleBook,
                            ChapterNumber = vs.Chapter,
                            VerseNumber   = verse,
                            Text          = s
                        });
                    }
                }
            }

            return(result.ToArray());
        }
Ejemplo n.º 2
0
        public string GetBibleTexts(
            IReadOnlyList <BookChapter> chapters,
            int bibleBook,
            ChapterAndVersesSpec chapterAndVerses,
            FormattingOptions formattingOptions)
        {
            bool showVerseNumbers = formattingOptions.IncludeVerseNumbers;

            if (!chapterAndVerses.HasMultipleVerses())
            {
                showVerseNumbers = false;
            }

            var result = new StringBuilder();

            foreach (var vs in chapterAndVerses.ContiguousVerses)
            {
                if (result.Length > 0 && formattingOptions.ShowBreakInVerses)
                {
                    char lastChar = result.ToString().Trim().Last();
                    if (lastChar == '.')
                    {
                        // looks odd if we have an ellipsis straight after a full stop!
                        var tmpStr = result.ToString().Trim();
                        tmpStr = tmpStr.Remove(tmpStr.Length - 1, 1);
                        result.Clear();
                        result.Append(tmpStr);
                        result.Append(Ellipsis);
                        result.Append(' ');
                    }
                    else
                    {
                        result.Append(Ellipsis);
                    }

                    result.Append(' ');
                }

                for (var verse = vs.StartVerse; verse <= vs.EndVerse; ++verse)
                {
                    string s = GetBibleText(chapters, bibleBook, vs.Chapter, verse, formattingOptions);
                    if (!string.IsNullOrEmpty(s))
                    {
                        if (verse > vs.StartVerse)
                        {
                            result.Append(' ');
                        }

                        if (showVerseNumbers)
                        {
                            result.Append($"|{verse}|");
                        }

                        result.Append(s);
                    }
                }
            }

            return(TrimPunctuationAndQuotationMarks(result.ToString(), formattingOptions));
        }