private void Traverse(ProcessingStages operation, AggregateUpdateContext context)
        {
            for (int i = 0; i < this.m_dataRegionObjs.Count; i++)
            {
                RuntimeDataRegionObjReference runtimeDataRegionObjReference = this.m_dataRegionObjs[i];
                if ((BaseReference)runtimeDataRegionObjReference != (object)null)
                {
                    using (runtimeDataRegionObjReference.PinValue())
                    {
                        switch (operation)
                        {
                        case ProcessingStages.SortAndFilter:
                            runtimeDataRegionObjReference.Value().SortAndFilter(context);
                            break;

                        case ProcessingStages.UpdateAggregates:
                            runtimeDataRegionObjReference.Value().UpdateAggregates(context);
                            break;

                        default:
                            Global.Tracer.Assert(false, "Unknown ProcessingStage in Traverse");
                            break;
                        }
                    }
                }
            }
        }
 public void CalculateRunningValues(Dictionary <string, IReference <RuntimeGroupRootObj> > groupCollection, IReference <RuntimeGroupRootObj> lastGroup, AggregateUpdateContext aggContext)
 {
     for (int i = 0; i < this.m_dataRegionObjs.Count; i++)
     {
         RuntimeDataRegionObjReference runtimeDataRegionObjReference = this.m_dataRegionObjs[i];
         if ((BaseReference)runtimeDataRegionObjReference != (object)null)
         {
             using (runtimeDataRegionObjReference.PinValue())
             {
                 runtimeDataRegionObjReference.Value().CalculateRunningValues(groupCollection, lastGroup, aggContext);
             }
         }
     }
 }
 private static void CreateDataRegionInstance(ScopeInstance parentInstance, OnDemandProcessingContext odpContext, RuntimeDataRegionObjReference dataRegionObjRef)
 {
     if (!(dataRegionObjRef == null))
     {
         using (dataRegionObjRef.PinValue())
         {
             RuntimeDataTablixObj obj = (RuntimeDataTablixObj)dataRegionObjRef.Value();
             Microsoft.ReportingServices.ReportIntermediateFormat.DataRegion dataRegionDef = obj.DataRegionDef;
             obj.SetupEnvironment();
             DataRegionInstance dataRegionInstance = DataRegionInstance.CreateInstance(parentInstance, odpContext.OdpMetadata, dataRegionDef, odpContext.CurrentDataSetIndex).Value();
             obj.CreateInstances(dataRegionInstance);
             dataRegionInstance.InstanceComplete();
             dataRegionDef.RuntimeDataRegionObj = null;
         }
     }
 }
 private static void CreateDataRegionInstance(ScopeInstance parentInstance, OnDemandProcessingContext odpContext, RuntimeDataRegionObjReference dataRegionObjRef)
 {
     if (!((BaseReference)dataRegionObjRef == (object)null))
     {
         using (dataRegionObjRef.PinValue())
         {
             RuntimeDataTablixObj runtimeDataTablixObj = (RuntimeDataTablixObj)dataRegionObjRef.Value();
             AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion dataRegionDef = runtimeDataTablixObj.DataRegionDef;
             runtimeDataTablixObj.SetupEnvironment();
             IReference <DataRegionInstance> reference = DataRegionInstance.CreateInstance(parentInstance, odpContext.OdpMetadata, dataRegionDef, odpContext.CurrentDataSetIndex);
             DataRegionInstance dataRegionInstance     = reference.Value();
             runtimeDataTablixObj.CreateInstances(dataRegionInstance);
             dataRegionInstance.InstanceComplete();
             dataRegionDef.RuntimeDataRegionObj = null;
         }
     }
 }
        public void FirstPassNextDataRow(OnDemandProcessingContext odpContext)
        {
            AggregateRowInfo aggregateRowInfo = AggregateRowInfo.CreateAndSaveAggregateInfo(odpContext);

            for (int i = 0; i < this.m_dataRegionObjs.Count; i++)
            {
                RuntimeDataRegionObjReference runtimeDataRegionObjReference = this.m_dataRegionObjs[i];
                if ((BaseReference)runtimeDataRegionObjReference != (object)null)
                {
                    using (runtimeDataRegionObjReference.PinValue())
                    {
                        runtimeDataRegionObjReference.Value().NextRow();
                    }
                    aggregateRowInfo.RestoreAggregateInfo(odpContext);
                }
            }
        }