Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        public VerseParseResult TryParseVerseString(string scriptureCitation, string language, out VerseSetDescriptor verseSet)
        {
            VerseParseResult result;

            verseSet = null;

            scriptureCitation = scriptureCitation.ToLowerInvariant().Trim();

            if (TryParseBook(scriptureCitation, language, out BibleBook book, out string chapterVerse, out result))
            {
                if (TryParseChapter(chapterVerse, book, out BibleChapter chapter, out string verseString, out result))
                {
                    if (TryParseVerse(verseString, chapter, out int startVerse, out int endVerse, out result))
                    {
                        verseSet = new VerseSetDescriptor
                        {
                            BookId              = book.BibleBookId,
                            Chapter             = chapter.ChapterNumber,
                            IsSingleChapterBook = book.IsSingleChapter,
                            Start = startVerse,
                            End   = endVerse
                        };

                        result = VerseParseResult.Success;
                    }
                }
            }

            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// Return the language-specific verse display text for the verse or
        /// sequence identified by the verse set descriptor.
        /// </summary>
        public string GetVerseCitationText(VerseSetDescriptor verseSet, string language)
        {
            var book = _bibleBookProvider.GetBookById(verseSet.BookId);

            var chapterString = book.IsSingleChapter ? "" : $"{verseSet.Chapter}:";

            var verseString = verseSet.Start == verseSet.End ? verseSet.Start.ToString() :
                              verseSet.End == (verseSet.Start + 1) ? $"{verseSet.Start},{verseSet.End}" :
                              $"{verseSet.Start}-{verseSet.End}";

            var bookName = book.GetNameForLanguage(language);

            return($"{bookName} {chapterString}{verseString}");
        }
Beispiel #3
0
        /// <summary>
        /// Return the language-specific verse display text for the verse or
        /// sequence identified by the verse set code.
        /// </summary>
        public string GetVerseCitationText(string verseSetCode, string language)
        {
            var setDescriptor = VerseSetDescriptor.FromCode(verseSetCode);

            return(GetVerseCitationText(setDescriptor, language));
        }