Exemplo n.º 1
0
        public void InsertNumbering(IElementContext context, Paragraph p)
        {
            var numberingMapper = context.Resolve <INumberingMapper>();

            if (!numberingMapper.IsValid)
            {
                return;
            }

            var paragraphData = numberingMapper.GetNumbering(p);

            if (paragraphData != null)
            {
                context.ViewBag[_config.ParagraphNumberingDataKey] =
                    (paragraphData.NumberingId, paragraphData.LevelIndex);
                context.AddNode(BuildNumberingContainer());

                if (context.TryResolve(out ICssRegistrator cssRegistrator))
                {
                    context.AddNode(BuildNumberingNumber(p, cssRegistrator, paragraphData));
                }
                else
                {
                    context.AddNode(BuildNumberingNumber(p, paragraphData));
                }
            }
        }
Exemplo n.º 2
0
        private void MockElementContext(int numberingId, int levelId, string verbose)
        {
            _p     = new Paragraph();
            _pData = Substitute.For <IParagraphData>();
            _pData.NumberingId.Returns(numberingId);
            _pData.LevelIndex.Returns(levelId);
            _pData.Verbose.Returns(verbose);
            _pData.LevelXmlElement.Returns(_level);
            _nMapper = Substitute.For <INumberingMapper>();
            _nMapper.IsValid.Returns(true);
            _nMapper.GetNumbering(_p).Returns(_pData);
            _cssRegistrator = Substitute.For <ICssRegistrator>();
            _cssRegistrator
            .RegisterRun(Arg.Any <ParagraphProperties>(), Arg.Any <RunProperties>(), (numberingId, levelId))
            .Returns(new CssClass {
                Name = $"dynamic-cls"
            });

            _elementContext = Substitute.For <IElementContext>();
            _elementContext.Resolve <INumberingMapper>().Returns(_nMapper);
            _elementContext.TryResolve(out ICssRegistrator z).Returns(x =>
            {
                x[0] = _cssRegistrator;
                return(true);
            });
            _elementContext.Element.Returns(_p);
            _elementContext.RootElement.Returns(_p);
            _elementContext
            .When(x => x.AddNode(Arg.Any <HtmlNode>()))
            .Do(x => _nodes.Add(x.ArgAt <HtmlNode>(0)));
            _elementContext
            .When(x => x.AddMutation(Arg.Any <Mutation>()))
            .Do(x => _mutations.Add(x.ArgAt <Mutation>(0)));
        }
Exemplo n.º 3
0
        private void ProcessParagraphProperties(IElementContext context, Paragraph p, HtmlNode containerNode)
        {
            var pPr = p.ParagraphProperties;

            if (pPr != null && context.TryResolve(out ICssRegistrator cssRegistrator))
            {
                CssClass cssClass;
                var      styleConfig = context.Resolve <StyleConfig>();

                if (context.TryResolve(out NumberingConfig numberingConfig) &&
                    context.ViewBag.TryGetValue(numberingConfig.ParagraphNumberingDataKey, out object numbering))
                {
                    var numberingData = ((int, int))numbering;
                    containerNode.AddClasses(_config.ContainerWithNumberingCls);
                    cssClass = cssRegistrator.RegisterParagraph(pPr, numberingData);
                }
                else
                {
                    cssClass = cssRegistrator.RegisterParagraph(pPr);
                }

                containerNode.AddClasses(cssClass.Name);
                context.ViewBag[_config.PPropsCssClassKey] = cssClass;
            }