protected internal override void RenderNode(WordTemplateParameters p) { if (this.NodeProvider.IsParagraph(this.Parent) && !this.Parent !.ChildElements.Any(a => BlockContainerNode.IsImportant(a, NodeProvider) && a != this)) { this.Parent.Remove(); }
internal static void ProcessTables(OpenXmlPart part, WordTemplateParameters parameters) { var graphicFrames = part.RootElement !.Descendants <Presentation.GraphicFrame>().ToList(); foreach (var item in graphicFrames) { var nonVisualProps = item.Descendants <Presentation.NonVisualDrawingProperties>().SingleEx(); var title = GetTitle(nonVisualProps); Data.DataTable?dataTable = title != null?GetDataTable(parameters, title) : null; if (dataTable != null) { ReplaceChartOrTable(part, item, dataTable, title !); } } var drawings = part.RootElement !.Descendants <Wordprocessing.Drawing>().ToList(); foreach (var item in drawings) { var docProps = item.Descendants <WPDrawing.DocProperties>().SingleEx(); var title = GetTitle(docProps); Data.DataTable?dataTable = title != null?GetDataTable(parameters, title) : null; if (dataTable != null) { ReplaceChartOrTable(part, item, dataTable, title !); } } }
internal void RenderNodes() { var parameters = new WordTemplateParameters(this.entity, this.culture, this.dicTokenColumn, this.table.Rows) { SystemWordTemplate = systemWordTemplate }; foreach (var root in document.RecursivePartsRootElements()) { var list = root.Descendants<BaseNode>().ToList(); //eager foreach (var node in list) { node.RenderNode(parameters); } } }
protected internal override void RenderNode(WordTemplateParameters p) { object?obj = ValueProvider.GetValue(p); string?text = obj is Enum en?en.NiceToString() : obj is bool b ? (b ? BooleanEnum.True.NiceToString() : BooleanEnum.False.NiceToString()) : obj is TimeSpan ts?ts.ToString(Format?.Replace(":", @"\:") ?? ValueProvider.Format, p.Culture) : obj is IFormattable fo?fo.ToString(Format ?? ValueProvider.Format, p.Culture) : obj?.ToString(); if (text != null && text.Contains('\n')) { var replacements = text.Lines() .Select((line, i) => NodeProvider.NewRun((OpenXmlCompositeElement?)RunProperties?.CloneNode(true), line, initialBr: i > 0)); this.ReplaceBy(replacements); } else { this.ReplaceBy(NodeProvider.NewRun((OpenXmlCompositeElement?)RunProperties?.CloneNode(true), text)); } }
protected internal override void RenderNode(WordTemplateParameters p) { if (this.ValueProvider.GetCondition(p, Operation, Value)) { this.ReplaceBy(this.IfBlock); this.IfBlock.RenderNode(p); } else if (ElseBlock != null) { this.ReplaceBy(this.ElseBlock); this.ElseBlock.RenderNode(p); } else this.Parent.RemoveChild(this); }
internal protected abstract void RenderNode(WordTemplateParameters p);
protected internal override void RenderNode(WordTemplateParameters p) { var filtered = this.ValueProvider.GetFilteredRows(p, Operation, Value); using (filtered is IEnumerable<ResultRow> ? p.OverrideRows((IEnumerable<ResultRow>)filtered) : null) { if (filtered.Any()) { this.ReplaceBy(this.AnyBlock); this.AnyBlock.RenderNode(p); } else if (NotAnyBlock != null) { this.ReplaceBy(this.NotAnyBlock); this.NotAnyBlock.RenderNode(p); } else this.Parent.RemoveChild(this); } }
protected internal override void RenderNode(WordTemplateParameters p) { var parent = this.Parent; int index = parent.ChildElements.IndexOf(this); parent.RemoveChild(this); List<Tuple<BlockNode, IEnumerable<ResultRow>>> tuples = new List<Tuple<BlockNode, IEnumerable<ResultRow>>>(); this.ValueProvider.Foreach(p, () => { var clone = (BlockNode)this.ForeachBlock.CloneNode(true); parent.InsertAt(clone, index++); tuples.Add(Tuple.Create(clone, p.Rows)); }); var prev = p.Rows; foreach (var tuple in tuples) { using (p.OverrideRows(tuple.Item2)) tuple.Item1.RenderNode(p); } }
protected internal override void RenderNode(WordTemplateParameters p) { foreach (var item in this.Descendants<BaseNode>().ToList()) { item.RenderNode(p); } var parent = this.Parent; int index = parent.ChildElements.IndexOf(this); parent.RemoveChild(this); foreach (var item in this.ChildElements.ToList()) { item.Remove(); parent.InsertAt(item, index++); } }
protected internal override void RenderNode(WordTemplateParameters p) { if (this.Parent is Paragraph && !this.Parent.ChildElements.Any(a => BlockContainerNode.IsImportant (a) && a != this)) this.Parent.Remove(); else this.Remove(); }
internal protected override void RenderNode(WordTemplateParameters p) { object obj = ValueProvider.GetValue(p); string text = obj is Enum ? ((Enum)obj).NiceToString() : obj is IFormattable ? ((IFormattable)obj).ToString(Format ?? ValueProvider.Format, p.Culture) : obj.TryToString(); this.ReplaceBy(new Run(this.RunProperties.TryDo(prop => prop.Remove()), new Text(text))); }
internal protected abstract void RenderNode(WordTemplateParameters p);
protected internal override void RenderNode(WordTemplateParameters p) { var parent = this.Parent; this.ValueProvider.Foreach(p, () => { var clone = (BlockNode)this.ForeachBlock.CloneNode(true); var index = parent.ChildElements.IndexOf(this); parent.InsertAt(clone, index); clone.RenderNode(p); }); parent.RemoveChild(this); }