private void CheckForPrematureScopeInstance(IRIFReportDataScope reportDataScope)
 {
     if (!OnDemandStateManagerStreaming.CanBindOrProcessIndividually(reportDataScope) && !reportDataScope.DataScopeInfo.NeedsIDC && !reportDataScope.IsDataIntersectionScope && !DataScopeInfo.HasDecomposableAncestorWithNonLatestInstanceBinding(reportDataScope))
     {
         this.TryProcessToNextScopeInstance(reportDataScope);
     }
 }
 public void CreatedScopeInstance(IRIFReportDataScope scope)
 {
     this.m_anyScopeInstanceCreated = true;
     if (OnDemandStateManagerStreaming.CanBindOrProcessIndividually(scope) && this.IsTargetScopeForDataProcessing(scope))
     {
         this.m_stoppingScopeInstanceCreated = true;
     }
 }
 private void EnsureScopeIsBound(IRIFReportDataScope reportDataScope)
 {
     this.BindScopeToInstance(reportDataScope);
     if (!reportDataScope.IsBoundToStreamingScopeInstance && OnDemandStateManagerStreaming.CanBindOrProcessIndividually(reportDataScope) && this.TryProcessToNextScopeInstance(reportDataScope))
     {
         this.BindScopeToInstance(reportDataScope);
     }
     if (!reportDataScope.IsBoundToStreamingScopeInstance)
     {
         reportDataScope.BindToNoRowsScopeInstance(base.m_odpContext);
     }
 }
        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();
            }
        }