Example #1
0
        private ChapterEntry GetChapterEntry()
        {
            if (!_chapterEntryWasSearched)
            {
                _chapterEntryWasSearched = true;

                if (VerseEntries.Any())
                {
                    _chapterEntry = new ChapterEntry();

                    VersePointer chapterVp = null;
                    foreach (var verseEntry in VerseEntries)
                    {
                        if (chapterVp != null &&
                            (verseEntry.VersePointer.BookIndex != chapterVp.BookIndex || verseEntry.VersePointer.Chapter != chapterVp.Chapter))
                        {
                            _chapterEntry.Invalid = true;
                            break;
                        }

                        if (chapterVp == null)
                        {
                            chapterVp = verseEntry.VersePointer;
                        }

                        if (verseEntry.StartIndex == 0)
                        {
                            _chapterEntry.AtStartOfParagraph = true;
                        }

                        if (verseEntry.VersePointer.MultiVerseType <= MultiVerse.OneChapter)
                        {
                            if (verseEntry.EntryType == VerseEntryType.BookChapter || verseEntry.EntryType == VerseEntryType.BookChapterVerse)
                            {
                                _chapterEntry.CorrectType = true;
                            }
                        }
                        else
                        {
                            _chapterEntry.Invalid = true;
                            break;
                        }
                    }

                    if (chapterVp != null && !_chapterEntry.Invalid)
                    {
                        _chapterEntry.ChapterPointer = chapterVp.ToChapterPointer();
                    }
                }
            }

            return(_chapterEntry);
        }
Example #2
0
 public override string ToString()
 {
     return(VerseEntries.Count == 1 ? $"{VerseEntries.First().VersePointer}" : $"{VerseEntries.Count} verses in: {Text}");
 }