internal void WriteItemToStream(RPLWriter rplWriter, PageContext pageContext) { List <long> list = null; BinaryWriter binaryWriter = rplWriter.BinaryWriter; if (binaryWriter != null) { if (m_textRuns != null) { list = new List <long>(); foreach (TextRun textRun in m_textRuns) { textRun.WriteItemToStream(rplWriter, pageContext); list.Add(textRun.Offset); } } Stream baseStream = binaryWriter.BaseStream; m_offset = baseStream.Position; binaryWriter.Write((byte)19); WriteElementProps(binaryWriter, rplWriter, pageContext, m_offset + 1); if (list != null) { binaryWriter.Write(list.Count); for (int i = 0; i < list.Count; i++) { binaryWriter.Write(list[i]); } } else { binaryWriter.Write(0); } binaryWriter.Write(byte.MaxValue); return; } m_rplElement = new RPLParagraph(); if (m_textRuns != null) { foreach (TextRun textRun2 in m_textRuns) { textRun2.WriteItemToStream(rplWriter, pageContext); m_rplElement.AddTextRun(textRun2.RPLElement); } } WriteElementProps(m_rplElement.ElementProps, rplWriter, pageContext); }
public RPLParagraph GetRPLParagraph(PageContext pageContext, bool hideDuplicates, TextBox.TextBoxOffset startPosition, TextBox.TextBoxOffset endPosition, List <AspNetCore.ReportingServices.Rendering.RichText.TextRun> richTextParaRuns) { RPLParagraph rPLParagraph = new RPLParagraph(); this.WriteElementProps(rPLParagraph.ElementProps as RPLParagraphProps, pageContext); int num = 0; int num2 = 0; if (endPosition == null && startPosition == null) { { foreach (TextRun textRun2 in this.m_textRuns) { num = num2; num2 += textRun2.SplitIndices.Count + 1; RPLTextRun rPLTextRun = textRun2.GetRPLTextRun(pageContext, hideDuplicates, null, null, num, richTextParaRuns); rPLParagraph.AddTextRun(rPLTextRun); } return(rPLParagraph); } } int count = this.m_textRuns.Count; int num3 = -1; if (startPosition != null) { num3 = startPosition.TextRunIndex; } int num4 = -1; if (endPosition != null) { num4 = endPosition.TextRunIndex; } for (int i = 0; i < count; i++) { TextRun textRun = this.m_textRuns[i]; num = num2; num2 += textRun.SplitIndices.Count + 1; if (num3 < num2) { if (endPosition != null) { if (num2 < num4) { rPLParagraph.AddTextRun(textRun.GetRPLTextRun(pageContext, hideDuplicates, startPosition, null, num, richTextParaRuns)); continue; } if (num2 == num4) { rPLParagraph.AddTextRun(textRun.GetRPLTextRun(pageContext, hideDuplicates, startPosition, null, num, richTextParaRuns)); if (endPosition.CharacterIndex <= 0) { break; } continue; } rPLParagraph.AddTextRun(textRun.GetRPLTextRun(pageContext, hideDuplicates, startPosition, endPosition, num, richTextParaRuns)); break; } rPLParagraph.AddTextRun(textRun.GetRPLTextRun(pageContext, hideDuplicates, startPosition, null, num, richTextParaRuns)); } } return(rPLParagraph); }