internal ParatextUsxBookList GetUsxDocumentsForIncludedParatextBooks(ISet <int> subset = null)
        {
            // Getting the checksum and the checking status at the same time and returning them together ensures that they are really
            // in sync, rather than relying on the caller to get them at the same time.
            var list = new ParatextUsxBookList();

            foreach (var bookNum in GlyssenDblTextMetadata.AvailableBooks.Where(ab => ab.IncludeInScript).Select(ib => Canon.BookIdToNumber(ib.Code)))
            {
                if (subset != null && !subset.Contains(bookNum))
                {
                    continue;
                }
                list.Add(bookNum, GetUsxDocumentForBook(bookNum), UnderlyingScrText.GetBookCheckSum(bookNum),
                         m_bookInfo.GetState(bookNum) == ParatextProjectBookInfo.BookState.NoProblem);
            }
            return(list);
        }
 public string GetBookChecksum(int bookNum)
 {
     return(UnderlyingScrText.GetBookCheckSum(bookNum));
 }
 private UsxDocument GetUsxDocumentForBook(int bookNum)
 {
     return(new UsxDocument(UsfmToUsx.ConvertToXmlDocument(UnderlyingScrText, bookNum, UnderlyingScrText.GetText(bookNum))));
 }