public bool MoveNext()
        {
            if (this.m_rifReader.EOS)
            {
                return(false);
            }
            this.m_currentNode = null;
            IPersistable persistable = this.m_rifReader.ReadRIFObject();

            switch (persistable.GetObjectType())
            {
            case AspNetCore.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.DocumentMapBeginContainer:
            {
                bool result = this.MoveNext();
                this.m_level++;
                return(result);
            }

            case AspNetCore.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.DocumentMapEndContainer:
                this.m_level--;
                return(this.MoveNext());

            case AspNetCore.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.DocumentMapNode:
            {
                DocumentMapNode documentMapNode = (DocumentMapNode)persistable;
                this.m_currentNode = new AspNetCore.ReportingServices.OnDemandReportRendering.DocumentMapNode(documentMapNode.Label, documentMapNode.Id, this.m_level);
                return(true);
            }

            default:
                Global.Tracer.Assert(false);
                return(false);
            }
        }
示例#2
0
        public override bool MoveNext()
        {
            this.m_current = null;
            if (this.m_nodeInfoStack == null)
            {
                this.m_nodeInfoStack = new Stack <IEnumerator <AspNetCore.ReportingServices.ReportProcessing.DocumentMapNode> >();
                this.m_current       = new DocumentMapNode(this.m_oldDocMap.Label, this.m_oldDocMap.Id, this.m_nodeInfoStack.Count + 1);
                this.m_nodeInfoStack.Push(((IEnumerable <AspNetCore.ReportingServices.ReportProcessing.DocumentMapNode>) this.m_oldDocMap.Children).GetEnumerator());
                return(true);
            }
            if (this.m_nodeInfoStack.Count == 0)
            {
                return(false);
            }
            while (this.m_nodeInfoStack.Count > 0 && !this.m_nodeInfoStack.Peek().MoveNext())
            {
                this.m_nodeInfoStack.Pop();
            }
            if (this.m_nodeInfoStack.Count == 0)
            {
                return(false);
            }
            IEnumerator <AspNetCore.ReportingServices.ReportProcessing.DocumentMapNode> enumerator = this.m_nodeInfoStack.Peek();

            AspNetCore.ReportingServices.ReportProcessing.DocumentMapNode current = enumerator.Current;
            this.m_current = new DocumentMapNode(current.Label, current.Id, this.m_nodeInfoStack.Count + 1);
            if (current.Children != null && current.Children.Length != 0)
            {
                this.m_nodeInfoStack.Push(((IEnumerable <AspNetCore.ReportingServices.ReportProcessing.DocumentMapNode>)current.Children).GetEnumerator());
            }
            return(true);
        }
示例#3
0
 public override void Reset()
 {
     this.m_current       = null;
     this.m_nodeInfoStack = null;
 }