Esempio n. 1
0
        void IPersistable.Deserialize(IntermediateFormatReader reader)
        {
            reader.RegisterDeclaration(RuntimeDataRowSortHierarchyObj.m_declaration);
            PersistenceHelper persistenceHelper = reader.PersistenceHelper;

            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.HierarchyRoot:
                    this.m_hierarchyRoot = (IReference <IHierarchyObj>)reader.ReadRIFObject();
                    break;

                case MemberName.DataRowHolder:
                    this.m_dataRowHolder = (RuntimeSortDataHolder)reader.ReadRIFObject();
                    break;

                case MemberName.Expression:
                    this.m_sortExpression = (RuntimeExpressionInfo)reader.ReadRIFObject();
                    break;

                case MemberName.SortTree:
                    this.m_sortTree = (BTree)reader.ReadRIFObject();
                    break;

                default:
                    Global.Tracer.Assert(false);
                    break;
                }
            }
        }
        public RuntimeSortHierarchyObj(IHierarchyObj outerHierarchy, int depth)
        {
            this.m_hierarchyRoot = outerHierarchy.HierarchyRoot;
            this.m_odpContext    = this.m_hierarchyRoot.Value().OdpContext;
            List <int> sortFilterInfoIndices = this.m_hierarchyRoot.Value().SortFilterInfoIndices;
            int        num = outerHierarchy.ExpressionIndex + 1;

            if (sortFilterInfoIndices == null || num >= sortFilterInfoIndices.Count)
            {
                RuntimeDataTablixGroupRootObjReference runtimeDataTablixGroupRootObjReference = this.m_hierarchyRoot as RuntimeDataTablixGroupRootObjReference;
                if ((BaseReference)null != (object)runtimeDataTablixGroupRootObjReference)
                {
                    using (runtimeDataTablixGroupRootObjReference.PinValue())
                    {
                        RuntimeDataTablixGroupRootObj runtimeDataTablixGroupRootObj = runtimeDataTablixGroupRootObjReference.Value();
                        this.m_dataHolder = (IReference <ISortDataHolder>)runtimeDataTablixGroupRootObj.CreateGroupLeaf();
                        if (!runtimeDataTablixGroupRootObj.HasParent)
                        {
                            runtimeDataTablixGroupRootObj.AddChildWithNoParent((RuntimeGroupLeafObjReference)this.m_dataHolder);
                        }
                    }
                }
                else
                {
                    this.m_dataRowHolder = new RuntimeSortDataHolder();
                }
            }
            else
            {
                this.m_sortHierarchyStruct = new SortHierarchyStructure(this, num, this.m_odpContext.RuntimeSortFilterInfo, sortFilterInfoIndices);
            }
        }
Esempio n. 3
0
        public RuntimeDataRowSortHierarchyObj(IHierarchyObj outerHierarchy, int depth)
        {
            this.m_hierarchyRoot = outerHierarchy.HierarchyRoot;
            int num = outerHierarchy.ExpressionIndex + 1;
            IDataRowSortOwner dataRowSortOwner = (IDataRowSortOwner)this.m_hierarchyRoot.Value();

            AspNetCore.ReportingServices.ReportIntermediateFormat.Sorting sortingDef = dataRowSortOwner.SortingDef;
            if (sortingDef.SortExpressions == null || num >= sortingDef.SortExpressions.Count)
            {
                this.m_dataRowHolder = new RuntimeSortDataHolder();
            }
            else
            {
                this.m_sortExpression = new RuntimeExpressionInfo(sortingDef.SortExpressions, sortingDef.ExprHost, sortingDef.SortDirections, num);
                this.m_sortTree       = new BTree(this, this.OdpContext, depth);
            }
        }
        void IPersistable.Deserialize(IntermediateFormatReader reader)
        {
            reader.RegisterDeclaration(RuntimeSortHierarchyObj.m_declaration);
            IScalabilityCache scalabilityCache = reader.PersistenceHelper as IScalabilityCache;

            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.HierarchyRoot:
                    this.m_hierarchyRoot = (IReference <IHierarchyObj>)reader.ReadRIFObject();
                    break;

                case MemberName.OdpContext:
                {
                    int id = reader.ReadInt32();
                    this.m_odpContext = (OnDemandProcessingContext)scalabilityCache.FetchStaticReference(id);
                    break;
                }

                case MemberName.SortHierarchyStruct:
                    this.m_sortHierarchyStruct = (SortHierarchyStructure)reader.ReadRIFObject();
                    break;

                case MemberName.DataHolder:
                    this.m_dataHolder = (IReference <ISortDataHolder>)reader.ReadRIFObject();
                    break;

                case MemberName.DataRowHolder:
                    this.m_dataRowHolder = (RuntimeSortDataHolder)reader.ReadRIFObject();
                    break;

                default:
                    Global.Tracer.Assert(false);
                    break;
                }
            }
        }