private void CreateMapDataRegions(IReference <IScope> owner, List <MapDataRegion> mapDataRegions, OnDemandProcessingContext odpContext, bool onePass, ref DataActions dataAction)
        {
            RuntimeDataTablixObj runtimeDataTablixObj = null;

            foreach (MapDataRegion mapDataRegion in mapDataRegions)
            {
                runtimeDataTablixObj = new RuntimeMapDataRegionObj(owner, mapDataRegion, ref dataAction, odpContext, onePass);
                this.AddDataRegion(runtimeDataTablixObj, mapDataRegion);
            }
        }
        private void CreateDataRegions(IReference <IScope> owner, AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem reportItem, OnDemandProcessingContext odpContext, bool onePass, ref DataActions dataAction)
        {
            RuntimeDataTablixObj runtimeDataTablixObj = null;

            switch (reportItem.ObjectType)
            {
            case AspNetCore.ReportingServices.ReportProcessing.ObjectType.Rectangle:
            {
                AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItemCollection reportItems = ((AspNetCore.ReportingServices.ReportIntermediateFormat.Rectangle)reportItem).ReportItems;
                if (reportItems != null && reportItems.ComputedReportItems != null)
                {
                    this.CreateDataRegions(owner, reportItems.ComputedReportItems, odpContext, onePass, ref dataAction);
                }
                break;
            }

            case AspNetCore.ReportingServices.ReportProcessing.ObjectType.Tablix:
                runtimeDataTablixObj = new RuntimeTablixObj(owner, (AspNetCore.ReportingServices.ReportIntermediateFormat.Tablix)reportItem, ref dataAction, odpContext, onePass);
                break;

            case AspNetCore.ReportingServices.ReportProcessing.ObjectType.Chart:
                runtimeDataTablixObj = new RuntimeChartObj(owner, (AspNetCore.ReportingServices.ReportIntermediateFormat.Chart)reportItem, ref dataAction, odpContext, onePass);
                break;

            case AspNetCore.ReportingServices.ReportProcessing.ObjectType.GaugePanel:
                runtimeDataTablixObj = new RuntimeGaugePanelObj(owner, (GaugePanel)reportItem, ref dataAction, odpContext, onePass);
                break;

            case AspNetCore.ReportingServices.ReportProcessing.ObjectType.MapDataRegion:
                runtimeDataTablixObj = new RuntimeMapDataRegionObj(owner, (MapDataRegion)reportItem, ref dataAction, odpContext, onePass);
                break;

            case AspNetCore.ReportingServices.ReportProcessing.ObjectType.CustomReportItem:
                if (reportItem.IsDataRegion)
                {
                    runtimeDataTablixObj = new RuntimeCriObj(owner, (AspNetCore.ReportingServices.ReportIntermediateFormat.CustomReportItem)reportItem, ref dataAction, odpContext, onePass);
                }
                break;

            case AspNetCore.ReportingServices.ReportProcessing.ObjectType.Map:
            {
                List <MapDataRegion> mapDataRegions = ((Map)reportItem).MapDataRegions;
                if (mapDataRegions != null)
                {
                    this.CreateMapDataRegions(owner, mapDataRegions, odpContext, onePass, ref dataAction);
                }
                break;
            }
            }
            if (runtimeDataTablixObj != null)
            {
                this.AddDataRegion(runtimeDataTablixObj, (AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion)reportItem);
            }
        }