/// <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); }
/// <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}"); }
/// <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)); }