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