public override void BindNextMemberInstance(IInstancePath rifObject, IReportScopeInstance romInstance, int moveNextInstanceIndex)
        {
            IRIFReportDataScope iRIFReportDataScope        = romInstance.ReportScope.RIFReportScope as IRIFReportDataScope;
            IReference <IOnDemandMemberInstance> reference = iRIFReportDataScope.CurrentStreamingScopeInstance as IReference <IOnDemandMemberInstance>;

            if (!reference.Value().IsNoRows)
            {
                IDisposable             disposable             = reference.PinValue();
                IOnDemandMemberInstance onDemandMemberInstance = reference.Value();
                iRIFReportDataScope.BindToStreamingScopeInstance(onDemandMemberInstance.GetNextMemberInstance());
                if (!iRIFReportDataScope.IsBoundToStreamingScopeInstance && OnDemandStateManagerStreaming.CanBindOrProcessIndividually(iRIFReportDataScope) && onDemandMemberInstance.IsMostRecentlyCreatedScopeInstance)
                {
                    IdcDataManager idcDataManager = null;
                    if (iRIFReportDataScope.DataScopeInfo.NeedsIDC)
                    {
                        idcDataManager = (IdcDataManager)base.GetIdcDataManager(iRIFReportDataScope);
                        List <object> groupExprValues = onDemandMemberInstance.GroupExprValues;
                        AspNetCore.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode   reportHierarchyNode = (AspNetCore.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode)iRIFReportDataScope;
                        List <AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo> groupExpressions    = reportHierarchyNode.Grouping.GroupExpressions;
                        idcDataManager.SetSkippingFilter(groupExpressions, groupExprValues);
                    }
                    if (this.TryProcessToNextScopeInstance(iRIFReportDataScope))
                    {
                        iRIFReportDataScope.BindToStreamingScopeInstance(onDemandMemberInstance.GetNextMemberInstance());
                    }
                    if (idcDataManager != null)
                    {
                        idcDataManager.ClearSkippingFilter();
                    }
                }
                if (!iRIFReportDataScope.IsBoundToStreamingScopeInstance)
                {
                    iRIFReportDataScope.BindToNoRowsScopeInstance(base.m_odpContext);
                }
                this.SetupEnvironment(iRIFReportDataScope, iRIFReportDataScope.CurrentStreamingScopeInstance.Value(), iRIFReportDataScope.CurrentStreamingScopeInstance);
                disposable.Dispose();
            }
        }
        private void RegisterParentForIdc(IRIFReportDataScope reportDataScope, IReference <IOnDemandScopeInstance> parentScopeInstanceRef)
        {
            IdcDataManager idcDataManager = (IdcDataManager)base.GetOrCreateIdcDataManager(reportDataScope);

            idcDataManager.RegisterActiveParent(parentScopeInstanceRef);
        }