本文整理汇总了C#中DataReader.ReadText方法的典型用法代码示例。如果您正苦于以下问题:C# DataReader.ReadText方法的具体用法?C# DataReader.ReadText怎么用?C# DataReader.ReadText使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DataReader
的用法示例。
在下文中一共展示了DataReader.ReadText方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessItemIfElement
private void ProcessItemIfElement(RepeaterElement ifElement, DataReader dataReader,
ref XElement endIfElement)
{
var expression = ifElement.Expression;
var condition = bool.Parse(dataReader.ReadText(expression));
if (!condition)
{
endIfElement = ifElement.EndTag;
}
}
示例2: ProcessElements
private XElement ProcessElements(IEnumerable<ItemRepeaterElement> itemRepeaterElements, DataReader dataReader, XElement start, XElement parent, int index, out ICollection<XElement> elementsBeforeNestedRepeaters, bool nested = false)
{
XElement result = null;
XElement previous = start;
ICollection<XElement> tempElementsBeforeItemRepeaters = new List<XElement>();
foreach (var itemRepeaterElement in itemRepeaterElements)
{
if (!itemRepeaterElement.IsVisible || itemRepeaterElement.IsItemIf || itemRepeaterElement.IsEndItemIf)
{
continue;
}
if (itemRepeaterElement.IsItemHtmlContent)
{
result = HtmlContentProcessor.MakeHtmlContentProcessed(itemRepeaterElement.XElement, dataReader.ReadText(itemRepeaterElement.Expression), true);
}
else if (itemRepeaterElement.IsIndex)
{
result = DocxHelper.CreateTextElement(itemRepeaterElement.XElement,
itemRepeaterElement.XElement.Parent,
index.ToString(CultureInfo.CurrentCulture),
!nested
);
}
else if (itemRepeaterElement.IsItem && itemRepeaterElement.HasExpression)
{
result = DocxHelper.CreateTextElement(itemRepeaterElement.XElement,
itemRepeaterElement.XElement.Parent,
dataReader.ReadText(itemRepeaterElement.Expression),
!nested
);
}
else
{
var element = new XElement(itemRepeaterElement.XElement);
element.RemoveNodes();
result = element;
if (itemRepeaterElement.HasElements)
{
ICollection<XElement> bisectNestedElements = new List<XElement>();
this.ProcessElements(itemRepeaterElement.Elements, dataReader, null, result, index, out bisectNestedElements, true);
if (bisectNestedElements.Count != 0)
{
tempElementsBeforeItemRepeaters.Add(bisectNestedElements.ElementAt(0));
}
}
else
{
element.Value = itemRepeaterElement.XElement.Value;
}
}
if (previous != null)
{
previous.AddAfterSelf(result);
previous = result;
}
else
{
parent.Add(result);
}
if (itemRepeaterElement.IsBeforeNestedRepeater)
{
tempElementsBeforeItemRepeaters.Add(result);
}
}
elementsBeforeNestedRepeaters = tempElementsBeforeItemRepeaters;
return result;
}
示例3: MarkInvisibleElements
private IEnumerable<ItemRepeaterElement> MarkInvisibleElements(IEnumerable<ItemRepeaterElement> repeaterElements, DataReader dataReader, ref int ifCount, ref bool flgProcessingInvisibleContent, bool isLast)
{
const string IsLastConditionName = "isnotlastelement";
var resultRepeaterElements = new List<ItemRepeaterElement>(repeaterElements);
foreach (var itemRepeaterElement in resultRepeaterElements)
{
if (flgProcessingInvisibleContent && (!itemRepeaterElement.XElement.Name.Equals(WordMl.ParagraphName) || itemRepeaterElement.XElement.IsSdt()))
{
itemRepeaterElement.IsVisible = false;
}
if (itemRepeaterElement.IsItemIf)
{
if (itemRepeaterElement.IsVisible)
{
var expression = itemRepeaterElement.Expression.ToLower();
var condition = expression.Equals(IsLastConditionName) ? !isLast : bool.Parse(dataReader.ReadText(expression));
flgProcessingInvisibleContent = !condition;
}
else
{
ifCount++;
}
}
else if (itemRepeaterElement.IsEndItemIf)
{
if (ifCount == 1)
{
flgProcessingInvisibleContent = false;
}
else
{
ifCount--;
}
}
else
{
if (itemRepeaterElement.HasElements)
{
itemRepeaterElement.Elements = this.MarkInvisibleElements(itemRepeaterElement.Elements, dataReader, ref ifCount, ref flgProcessingInvisibleContent, isLast);
}
}
}
return resultRepeaterElements;
}
示例4: ProcessElements
private XElement ProcessElements(IEnumerable<ItemRepeaterElement> elements, DataReader dataReader, XElement start, XElement parent, int index, ref XElement nestedRepeaterEndElement, ref XElement endIfElement, bool nestedElement = false)
{
XElement result = null;
XElement previous = start;
foreach (var itemRepeaterElement in elements)
{
var flgStucturedElementProcessed = this.CheckAndProcessStartIfElementForContinue(itemRepeaterElement,
dataReader,
ref endIfElement)
||
this.CheckAndProcessEndIfElementForContinue(itemRepeaterElement,
ref endIfElement)
||
this.CheckAndProcessEndItemRepeaterElementForContinue(
itemRepeaterElement, ref nestedRepeaterEndElement)
|| this.CheckTableElementForContinue(itemRepeaterElement);
if (!flgStucturedElementProcessed)
{
var flgNestedElementCheckedForContinue = this.CheckNestedConditionElementForContinue(
itemRepeaterElement, endIfElement)
||
this.CheckNestedElementForContinue(elements.First(),
itemRepeaterElement,
nestedRepeaterEndElement);
if (!flgNestedElementCheckedForContinue)
{
if (itemRepeaterElement.IsItemHtmlContent)
{
result = HtmlContentProcessor.MakeHtmlContentProcessed(itemRepeaterElement.XElement,
dataReader.ReadText(
itemRepeaterElement.Expression),
true);
}
else if (itemRepeaterElement.IsItemRepeater)
{
var itemRepeaterTag = new ItemRepeaterTag()
{
StartItemRepeater = itemRepeaterElement.StartTag,
EndItemRepeater = itemRepeaterElement.EndTag,
Source = itemRepeaterElement.Expression
};
var itemRepeaterGenerator = new ItemRepeaterGenerator();
previous = itemRepeaterGenerator.Generate(itemRepeaterTag,
dataReader.GetReaders(itemRepeaterTag.Source),
previous, parent);
nestedRepeaterEndElement = itemRepeaterTag.EndItemRepeater;
result = null;
}
else if (itemRepeaterElement.IsIndex)
{
result = DocxHelper.CreateTextElement(itemRepeaterElement.XElement,
itemRepeaterElement.XElement.Parent,
index.ToString(CultureInfo.CurrentCulture),
!nestedElement);
}
else if (itemRepeaterElement.IsItem)
{
result = DocxHelper.CreateTextElement(itemRepeaterElement.XElement,
itemRepeaterElement.XElement.Parent,
dataReader.ReadText(itemRepeaterElement.Expression),
dataReader.ReadAttribute(itemRepeaterElement.Expression, "style"),
!nestedElement);
}
else if (itemRepeaterElement.IsItemTable)
{
result = ItemTableGenerator.ProcessItemTableElement(itemRepeaterElement.StartTag, itemRepeaterElement.EndTag,
dataReader);
if (nestedElement)
{
previous.AddAfterSelf(result);
previous = result;
result = null;
}
}
else
{
var element = new XElement(itemRepeaterElement.XElement);
element.RemoveNodes();
result = element;
if (itemRepeaterElement.HasElements)
{
var parsedLastElement = this.ProcessElements(itemRepeaterElement.Elements, dataReader,
previous,
result, index, ref nestedRepeaterEndElement,
ref endIfElement, true);
if (itemRepeaterElement.Elements.Any(ire => ire.XElement.IsSdt()) && DocxHelper.IsEmptyParagraph(result))
{
result = null;
}
if (itemRepeaterElement.Elements.Any(ire => ire.IsItemTable) ||
itemRepeaterElement.Elements.Any(
ire =>
ire.IsItemRepeater && !CheckInlineWrappingMode(ire.StartTag, ire.EndTag)))
{
previous = parsedLastElement;
}
}
//.........这里部分代码省略.........
示例5: ProcessIfElement
private void ProcessIfElement(ItemRepeaterElement ifElement, DataReader dataReader, ref XElement endIfElement)
{
const string IsNotLastElementCondition = "isnotlastelement";
const string IsLastElementCondition = "islastelement";
var expression = ifElement.Expression;
if (expression.Equals(IsNotLastElementCondition) || expression.Equals(IsLastElementCondition))
{
var cond = expression.Equals(IsNotLastElementCondition) ^ dataReader.IsLast;
if (!cond)
{
endIfElement = ifElement.EndTag;
}
}
else
{
var condition = bool.Parse(dataReader.ReadText(expression));
if (!condition)
{
endIfElement = ifElement.EndTag;
}
}
}
示例6: ProcessElements
private XElement ProcessElements(IEnumerable<RepeaterElement> elements, DataReader dataReader, XElement start, XElement parent, int index, ref XElement endIfElement, ref XElement nestedRepeaterEndElement, ref XElement currentEndItemTable, bool nested = false)
{
XElement result = null;
XElement previous = start;
//if ((parent != null) && (!parent.Name.Equals(WordMl.TableCellName)))
//{
elements = elements.Where(el => !this.IsItemRepeaterElement(el.XElement)).ToList();
//}
foreach (var repeaterElement in elements )//elements.Where(el => !this.IsItemRepeaterElement(el.XElement)).ToList())
{
if (nestedRepeaterEndElement != null)
{
if (repeaterElement.XElement.Equals(nestedRepeaterEndElement))
{
nestedRepeaterEndElement = null;
}
continue;
}
if (currentEndItemTable != null)
{
if (repeaterElement.XElement.Equals(currentEndItemTable))
{
currentEndItemTable = null;
}
continue;
}
if (repeaterElement.IsEndItemIf /*&& repeaterElement.XElement.Equals(endIfElement)*/)
{
//endIfElement = null;
if (repeaterElement.XElement.Equals(endIfElement))
{
endIfElement = null;
}
continue;
}
if ((endIfElement != null) && !repeaterElement.XElement.Name.Equals(WordMl.ParagraphName))
{
continue;
}
if (repeaterElement.IsItemIf)
{
this.ProcessItemIfElement(repeaterElement, dataReader, ref endIfElement);
continue;
}
if (repeaterElement.IsItemTable)
{
/*currentEndItemTable = RepeaterParser.FindEndTag(repeaterElement.XElement, "itemtable",
"enditemtable");*/
currentEndItemTable = repeaterElement.EndTag;
}
/*
if (repeaterElement.IsEndItemTable /*|| (repeaterElement.XElement.Name.Equals(WordMl.TableName) && repeaterElement.XElement.Descendants().Any(el => el.IsSdt())))
{
continue;
}*/
if (repeaterElement.IsItemHtmlContent)
{
result = HtmlContentProcessor.MakeHtmlContentProcessed(repeaterElement.XElement, dataReader.ReadText(repeaterElement.Expression), true);
}
else if (repeaterElement.IsItemTable)
{
result = ItemTableGenerator.ProcessItemTableElement(repeaterElement.StartTag, repeaterElement.EndTag,
dataReader);
if (nested)
{
previous.AddAfterSelf(result);
previous = result;
result = null;
}
}
else if (repeaterElement.IsItemRepeater)
{
var itemRepeaterTag = new ItemRepeaterTag()
{
StartItemRepeater = repeaterElement.StartTag,
EndItemRepeater = repeaterElement.EndTag,
Source = repeaterElement.Expression
};
var itemRepeaterGenerator = new ItemRepeaterGenerator();
previous = itemRepeaterGenerator.Generate(itemRepeaterTag,
dataReader.GetReaders(repeaterElement.Expression),
previous, parent, true);
result = null;
nestedRepeaterEndElement = repeaterElement.EndTag;
}
else if (repeaterElement.IsIndex)
{
result = DocxHelper.CreateTextElement(repeaterElement.XElement, repeaterElement.XElement.Parent, index.ToString(CultureInfo.CurrentCulture));
}
else if (repeaterElement.IsItem && repeaterElement.HasExpression)
{
result = DocxHelper.CreateTextElement(repeaterElement.XElement, repeaterElement.XElement.Parent, dataReader.ReadText(repeaterElement.Expression), dataReader.ReadAttribute(repeaterElement.Expression, "style"));
}
else
{
var element = new XElement(repeaterElement.XElement);
element.RemoveNodes();
result = element;
if (repeaterElement.HasElements)
//.........这里部分代码省略.........
示例7: ProcessItemIfElement
private XElement ProcessItemIfElement(TableElement itemIfElement, DataReader dataReader, int index, XElement previous)
{
bool condition;
try
{
condition = bool.Parse(dataReader.ReadText(itemIfElement.Expression));
}
catch (FormatException)
{
condition = false;
}
catch (System.Xml.XPath.XPathException)
{
condition = false;
}
var currentCell = itemIfElement.StartTag.Ancestors().First(element => element.Name == WordMl.TableCellName);
if (condition)
{
this.ProcessElements(itemIfElement.TagElements, dataReader, index, previous, false);
itemIfElement.StartTag.Remove();
itemIfElement.EndTag.Remove();
if (previous != null && !previous.Equals(currentCell))
{
currentCell.Remove();
previous.AddAfterSelf(currentCell);
}
}
else
{
this.CleanUp(itemIfElement.StartTag, itemIfElement.EndTag);
if (!currentCell.Elements(WordMl.ParagraphName).Any())
{
currentCell.Add(new XElement(WordMl.ParagraphName));
}
if (previous != null && !previous.Equals(currentCell))
{
currentCell.Remove();
previous.AddAfterSelf(currentCell);
}
else if (previous == null)
{
var parentRow = currentCell.Parent;
currentCell.Remove();
parentRow.Add(currentCell);
}
}
return currentCell;
}
示例8: ProcessElements
private void ProcessElements(IEnumerable<TableElement> tableElements, DataReader dataReader, int index, XElement start, bool isTopLevel)
{
var tableElementsList = tableElements.ToList();
XElement previous = start;
XElement firstCell = null;
foreach (var currentTableElement in tableElementsList)
{
if (currentTableElement.IsCellColor)
{
this.SetCellColor(currentTableElement.StartTag.Ancestors(WordMl.TableCellName).First(), dataReader.ReadText(currentTableElement.Expression));
currentTableElement.StartTag.Remove();
}
else if (currentTableElement.IsItemTable)
{
var tableCell = currentTableElement.StartTag.Ancestors(WordMl.TableCellName).Last();
var tableElement = TraverseUtils.SecondElementsBetween(currentTableElement.StartTag,
currentTableElement.EndTag)
.SingleOrDefault(el => el.Name.Equals(WordMl.TableName));
var parentCellWidth = GetCellWidth(tableCell);
SetTableWidth(tableElement, parentCellWidth);
XElement parentElement = null;
if (currentTableElement.StartTag.Parent.Name.Equals(WordMl.ParagraphName))
{
parentElement = currentTableElement.StartTag.Parent;
}
var itemTableGenerator = new ItemTableGenerator();
itemTableGenerator.Generate(currentTableElement.StartTag, currentTableElement.EndTag, dataReader);
if (parentElement != null)
{
parentElement.Remove();
}
}
else if (currentTableElement.IsItemHtmlContent)
{
currentTableElement.StartTag = HtmlContentProcessor.MakeHtmlContentProcessed(currentTableElement.StartTag,
dataReader.ReadText(
currentTableElement.Expression));
}
else if (currentTableElement.IsItemIf)
{
previous = this.ProcessItemIfElement(currentTableElement, dataReader, index, previous);
//TODO: this if need testing
if (firstCell == null)
{
firstCell = previous;
}
}
else if (currentTableElement.IsItemRepeater)
{
this.ProcessItemRepeaterElement(currentTableElement, dataReader, index, previous);
}
else if (currentTableElement.IsItem || currentTableElement.IsIndex)
{
var resultText = currentTableElement.IsIndex
? index.ToString(CultureInfo.CurrentCulture)
: dataReader.ReadText(currentTableElement.Expression);
previous = this.ProcessCell(currentTableElement, previous, resultText);
if (firstCell == null)
{
firstCell = previous;
}
currentTableElement.StartTag.Remove();
}
}
if (isTopLevel && firstCell != null)
{
ProcessStaticCells(firstCell, previous);
}
}