public void AddHierarchyResult(HierarchyParseResult hierarchyResult)
        {
            ParseResult.ChildHierarchyResults.Add(hierarchyResult);

            ParseResult.TextLength  += hierarchyResult.TextLength;
            ParseResult.VersesCount += hierarchyResult.VersesCount;
        }
Ejemplo n.º 2
0
        public static LinearParseResult FromHierarchyParseResult(HierarchyParseResult hierarchyResult)
        {
            var result = new LinearParseResult();

            AddParagraphsFromHierarchy(hierarchyResult, result, 0);

            return(result);
        }
        public HierarchyParseContext(ElementType elementType, IElementParseContext previousSibling,
                                     IHierarchyParseContext parentHierarchy)
        {
            ElementType     = elementType;
            PreviousSibling = previousSibling;
            ParentHierarchy = parentHierarchy;

            ParseResult      = new HierarchyParseResult(elementType);
            ChildHierarchies = new List <IHierarchyParseContext>();
        }
Ejemplo n.º 4
0
        private static void AddParagraphsFromHierarchy(HierarchyParseResult hierarchyResult, LinearParseResult result, int depth)
        {
            foreach (var paragraph in hierarchyResult.ParagraphResults)
            {
                result.Paragraphs.AddLast(new ParagraphParseResultExt(paragraph, depth));
            }

            foreach (var childHierarchy in hierarchyResult.ChildHierarchyResults)
            {
                AddParagraphsFromHierarchy(childHierarchy, result, depth + 1);
            }
        }
Ejemplo n.º 5
0
        private void ProcessHierarchy(HierarchyParseResult hierarchyResult)
        {
            foreach (var paragraphResult in hierarchyResult.ParagraphResults)
            {
                paragraphResult.Paragraph = new DocumentParagraph()
                {
                    DocumentId = this.documentId,
                    Index      = paragraphResult.ParagraphIndex,
                    Path       = paragraphResult.ParagraphPath
                };
                this.dbContext.DocumentParagraphRepository.Add(paragraphResult.Paragraph);

                foreach (var verseEntry in paragraphResult.VerseEntries)
                {
                    var suffix = verseEntry.VersePointer.MultiVerseType == MultiVerse.None
                                    ? null
                                    : $"({verseEntry.VersePointer.GetFullVerseNumberString()})";

                    foreach (var verse in verseEntry.VersePointer.SubVerses.Verses)
                    {
                        this.dbContext.VerseEntryRepository
                        .Add(new VerseEntry()
                        {
                            DocumentParagraph = paragraphResult.Paragraph,
                            Suffix            = suffix,
                            VerseId           = verse.GetVerseId(),
                            Weight            = Math.Round(1M / verseEntry.VersePointer.SubVerses.VersesCount, 2)
                        });
                    }
                }
            }

            foreach (var childHierarchy in hierarchyResult.ChildHierarchyResults)
            {
                ProcessHierarchy(childHierarchy);
            }
        }