当前位置: 首页>>代码示例>>C#>>正文


C# DataReader.ReadText方法代码示例

本文整理汇总了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;
     }                                
 }
开发者ID:koZZZdya,项目名称:TsSoft.Docx.TemplateEngine,代码行数:10,代码来源:RepeaterProcessor.cs

示例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;
        }
开发者ID:koZZZdya,项目名称:TsSoft.Docx.TemplateEngine,代码行数:68,代码来源:ItemRepeaterParser.cs

示例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;
 }
开发者ID:koZZZdya,项目名称:TsSoft.Docx.TemplateEngine,代码行数:44,代码来源:ItemRepeaterParser.cs

示例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;
                                }
                                
                            }
//.........这里部分代码省略.........
开发者ID:koZZZdya,项目名称:TsSoft.Docx.TemplateEngine,代码行数:101,代码来源:ItemRepeaterGenerator.cs

示例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;
         }                
     }                                
 }
开发者ID:koZZZdya,项目名称:TsSoft.Docx.TemplateEngine,代码行数:23,代码来源:ItemRepeaterGenerator.cs

示例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)
//.........这里部分代码省略.........
开发者ID:koZZZdya,项目名称:TsSoft.Docx.TemplateEngine,代码行数:101,代码来源:RepeaterProcessor.cs

示例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;
        }
开发者ID:koZZZdya,项目名称:TsSoft.Docx.TemplateEngine,代码行数:50,代码来源:TableProcessor.cs

示例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);
            }
        }
开发者ID:koZZZdya,项目名称:TsSoft.Docx.TemplateEngine,代码行数:74,代码来源:TableProcessor.cs


注:本文中的DataReader.ReadText方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。