Пример #1
0
        private void AddNew(BaseNumberNode parent, BaseDecoratedNumber child, string differentiator, int paragraphOrder)
        {
            var node = new NumberNode(parent, child, paragraphOrder);

            parent.ChildDifferentiator = differentiator;
            parent.Children.Add(node);

            Current = node;
            _differentiatorSetInCurrentChain.Add(differentiator);

            _differentiatorLevelPropsMapping[differentiator] = new LevelProps
            {
                Level     = Current.Level,
                MaxNumber = child.Number.IntNumber,
            };
        }
Пример #2
0
        private void ContinueLevel(BaseDecoratedNumber currentNumber, string differentiator, int paragraphOrder)
        {
            if (Current == null)
            {
                throw new ArgumentNullException("Current node cannot be null");
            }

            if (Current.DecoratedNumber.Number.IntNumber + 1 != currentNumber.Number.IntNumber)
            {
                throw new DiscontinuousNumberException(currentNumber, Current.DecoratedNumber.Number.IntNumber + 1);
            }

            var node = new NumberNode(Current.Parent, currentNumber, paragraphOrder);

            Current.Parent.Children.Add(node);
            Current = node;

            _differentiatorLevelPropsMapping[differentiator] = new LevelProps
            {
                Level     = Current.Level,
                MaxNumber = currentNumber.Number.IntNumber,
            };
        }