public void PostFilterNextRow()
 {
     if (this.m_nonCustomAggregates != null)
     {
         for (int i = 0; i < this.m_nonCustomAggregates.Count; i++)
         {
             this.m_nonCustomAggregates[i].Update();
         }
     }
     if (this.m_dataRows != null)
     {
         RuntimeDataTablixObj.SaveData(this.m_dataRows, this.m_odpContext);
     }
     if (this.m_firstNonAggregateRow)
     {
         this.m_firstNonAggregateRow           = false;
         this.m_dataSetInstance.FirstRowOffset = this.m_odpContext.ReportObjectModel.FieldsImpl.StreamOffset;
     }
     if (this.m_lookupProcessor != null)
     {
         this.m_lookupProcessor.NextRow();
     }
     else
     {
         this.PostLookupNextRow();
     }
 }
 protected void CommonNextRow(ScalableList <DataFieldRow> dataRows)
 {
     if (dataRows != null)
     {
         RuntimeDataTablixObj.SaveData(dataRows, this.m_odpContext);
     }
     this.SendToInner();
 }
        public void NextRow()
        {
            long           streamOffset = this.m_odpContext.ReportObjectModel.FieldsImpl.StreamOffset;
            int            num          = -1;
            CommonRowCache tablixProcessingLookupRowCache = this.m_odpContext.TablixProcessingLookupRowCache;

            if (this.m_mustBufferAllRows)
            {
                num = tablixProcessingLookupRowCache.AddRow(RuntimeDataTablixObj.SaveData(this.m_odpContext));
                if (this.m_firstRowCacheIndex == -1)
                {
                    this.m_firstRowCacheIndex = num;
                }
            }
            IScalabilityCache tablixProcessingScalabilityCache = this.m_odpContext.TablixProcessingScalabilityCache;

            for (int i = 0; i < this.m_dataSet.LookupDestinationInfos.Count; i++)
            {
                LookupDestinationInfo lookupDestinationInfo = this.m_dataSet.LookupDestinationInfos[i];
                LookupObjResult       lookupObjResult       = this.m_dataSetInstance.LookupResults[i];
                if (!lookupObjResult.ErrorOccured)
                {
                    AspNetCore.ReportingServices.RdlExpressions.VariantResult variantResult = lookupDestinationInfo.EvaluateDestExpr(this.m_odpContext, lookupObjResult);
                    if (variantResult.ErrorOccurred)
                    {
                        lookupObjResult.DataFieldStatus = variantResult.FieldStatus;
                    }
                    else
                    {
                        object      value       = variantResult.Value;
                        LookupTable lookupTable = lookupObjResult.GetLookupTable(this.m_odpContext);
                        try
                        {
                            LookupMatches lookupMatches = default(LookupMatches);
                            IDisposable   disposable    = default(IDisposable);
                            if (!lookupTable.TryGetAndPinValue(value, out lookupMatches, out disposable))
                            {
                                lookupMatches = ((!lookupDestinationInfo.UsedInSameDataSetTablixProcessing) ? new LookupMatches() : new LookupMatchesWithRows());
                                disposable    = lookupTable.AddAndPin(value, lookupMatches);
                            }
                            if (lookupDestinationInfo.IsMultiValue || !lookupMatches.HasRow)
                            {
                                lookupMatches.AddRow(streamOffset, num, tablixProcessingScalabilityCache);
                            }
                            disposable.Dispose();
                        }
                        catch (ReportProcessingException_SpatialTypeComparisonError reportProcessingException_SpatialTypeComparisonError)
                        {
                            throw new ReportProcessingException(this.m_lookupOwner.RegisterSpatialElementComparisonError(reportProcessingException_SpatialTypeComparisonError.Type));
                        }
                    }
                }
            }
            if (!this.m_mustBufferAllRows)
            {
                this.m_lookupOwner.PostLookupNextRow();
            }
        }
 public static void SaveData(ScalableList <DataFieldRow> dataRows, OnDemandProcessingContext odpContext)
 {
     Global.Tracer.Assert(null != dataRows, "(null != dataRows)");
     dataRows.Add(RuntimeDataTablixObj.SaveData(odpContext));
 }