protected override void CleanupSuccessfulProcessing(ProcessingErrorContext errorContext) { if (!IsRenderStream) { errorContext.Combine(m_reportSnapshot.Warnings); } }
protected override void ProcessReport(ProcessingErrorContext errorContext, ExecutionLogContext executionLogContext, ref UserProfileState userProfileState) { ChunkFactoryAdapter @object = new ChunkFactoryAdapter(base.PublicProcessingContext.ChunkFactory); Hashtable instanceObjects = default(Hashtable); Hashtable definitionObjects = default(Hashtable); IntermediateFormatReader.State declarationsRead = default(IntermediateFormatReader.State); bool flag = default(bool); base.m_reportSnapshot = ReportProcessing.DeserializeReportSnapshot((ReportProcessing.GetReportChunk)@object.GetReportChunk, (ReportProcessing.CreateReportChunk)@object.CreateReportChunk, base.PublicProcessingContext.GetResourceCallback, base.PublicRenderingContext, base.PublicProcessingContext.DataProtection, out instanceObjects, out definitionObjects, out declarationsRead, out flag); Global.Tracer.Assert(null != base.m_reportSnapshot, "(null != reportSnapshot)"); Global.Tracer.Assert(null != base.m_reportSnapshot.Report, "(null != reportSnapshot.Report)"); Global.Tracer.Assert(null != base.m_reportSnapshot.ReportInstance, "(null != reportSnapshot.ReportInstance)"); base.m_chunkManager = new ChunkManager.RenderingChunkManager(@object.GetReportChunk, instanceObjects, definitionObjects, declarationsRead, base.m_reportSnapshot.Report.IntermediateFormatVersion); bool flag2 = default(bool); EventInformation eventInfo = default(EventInformation); base.Processing.ProcessShowHideToggle(base.PublicRenderingContext.ShowHideToggle, base.m_reportSnapshot, base.PublicRenderingContext.EventInfo, base.m_chunkManager, out flag2, out eventInfo); if (flag2) { base.PublicRenderingContext.EventInfo = eventInfo; } bool retrieveRenderingInfo = this.IsRenderStream || !flag; base.m_renderingContext = new AspNetCore.ReportingServices.ReportRendering.RenderingContext(base.m_reportSnapshot, base.PublicRenderingContext.Format, base.m_reportSnapshot.ExecutionTime, base.m_reportSnapshot.Report.EmbeddedImages, base.m_reportSnapshot.Report.ImageStreamNames, base.PublicRenderingContext.EventInfo, base.PublicRenderingContext.ReportContext, base.PublicRenderingContext.ReportUri, base.RenderingParameters, @object.GetReportChunk, base.m_chunkManager, base.PublicProcessingContext.GetResourceCallback, @object.GetChunkMimeType, base.PublicRenderingContext.StoreServerParametersCallback, retrieveRenderingInfo, base.PublicRenderingContext.AllowUserProfileState, base.PublicRenderingContext.ReportRuntimeSetup, base.PublicProcessingContext.JobContext, base.PublicProcessingContext.DataProtection); }
protected override void CleanupSuccessfulProcessing(ProcessingErrorContext errorContext) { if (!this.IsRenderStream) { errorContext.Combine(base.m_odpReportSnapshot.Warnings); } base.CleanupSuccessfulProcessing(errorContext); }
protected override void ProcessReport(ProcessingErrorContext errorContext, ExecutionLogContext executionLogContext, ref UserProfileState userProfileState) { OnDemandMetadata onDemandMetadata = null; AspNetCore.ReportingServices.ReportIntermediateFormat.Report report = default(AspNetCore.ReportingServices.ReportIntermediateFormat.Report); GlobalIDOwnerCollection globalIDOwnerCollection = AspNetCore.ReportingServices.ReportIntermediateFormat.Persistence.ChunkManager.OnDemandProcessingManager.DeserializeOdpReportSnapshot(base.PublicProcessingContext, (IChunkFactory)null, errorContext, true, true, base.Configuration, ref onDemandMetadata, out report); base.m_odpReportSnapshot = onDemandMetadata.ReportSnapshot; ProcessReportOdpSnapshot processReportOdpSnapshot = new ProcessReportOdpSnapshot(base.Configuration, base.PublicProcessingContext, report, errorContext, base.PublicRenderingContext.StoreServerParametersCallback, globalIDOwnerCollection, executionLogContext, onDemandMetadata); ((ProcessReportOdp)processReportOdpSnapshot).Execute(out base.m_odpContext); }
protected override void ProcessReport(ProcessingErrorContext errorContext, ExecutionLogContext executionLogContext, ref UserProfileState userProfileState) { GlobalIDOwnerCollection globalIDOwnerCollection; Microsoft.ReportingServices.ReportIntermediateFormat.Report reportDefinition = GetReportDefinition(out globalIDOwnerCollection); ProcessReportOdpInitial processReportOdpInitial = new ProcessReportOdpInitial(base.Configuration, base.PublicProcessingContext, reportDefinition, errorContext, base.PublicRenderingContext.StoreServerParametersCallback, globalIDOwnerCollection, executionLogContext, m_executionTimeStamp); m_odpReportSnapshot = processReportOdpInitial.Execute(out m_odpContext); }
protected override void ProcessReport(ProcessingErrorContext errorContext, ExecutionLogContext executionLogContext, ref UserProfileState userProfileState) { GlobalIDOwnerCollection globalIDOwnerCollection = default(GlobalIDOwnerCollection); AspNetCore.ReportingServices.ReportIntermediateFormat.Report reportDefinition = base.GetReportDefinition(out globalIDOwnerCollection); ProcessReportDefinitionOnly processReportDefinitionOnly = new ProcessReportDefinitionOnly(base.Configuration, base.PublicProcessingContext, reportDefinition, errorContext, base.PublicRenderingContext.StoreServerParametersCallback, globalIDOwnerCollection, executionLogContext, base.ExecutionTimeStamp); base.m_odpReportSnapshot = ((ProcessReportOdp)processReportDefinitionOnly).Execute(out base.m_odpContext); }
protected override void ProcessReport(ProcessingErrorContext errorContext, ExecutionLogContext executionLogContext, ref UserProfileState userProfileState) { OnDemandMetadata odpMetadata = null; Microsoft.ReportingServices.ReportIntermediateFormat.Report report; GlobalIDOwnerCollection globalIDOwnerCollection = Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ChunkManager.OnDemandProcessingManager.DeserializeOdpReportSnapshot(base.PublicProcessingContext, null, errorContext, fetchSubreports: true, deserializeGroupTree: true, base.Configuration, ref odpMetadata, out report); m_odpReportSnapshot = odpMetadata.ReportSnapshot; new ProcessReportOdpSnapshot(base.Configuration, base.PublicProcessingContext, report, errorContext, base.PublicRenderingContext.StoreServerParametersCallback, globalIDOwnerCollection, executionLogContext, odpMetadata).Execute(out m_odpContext); }
protected override void ProcessReport(ProcessingErrorContext errorContext, ExecutionLogContext executionLogContext, ref UserProfileState userProfileState) { OnDemandMetadata onDemandMetadata = null; GlobalIDOwnerCollection globalIDOwnerCollection = new GlobalIDOwnerCollection(); onDemandMetadata = Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ChunkManager.OnDemandProcessingManager.DeserializeOnDemandMetadata(m_dataCacheChunks, globalIDOwnerCollection); globalIDOwnerCollection = new GlobalIDOwnerCollection(); Microsoft.ReportingServices.ReportIntermediateFormat.Report report = ReportProcessing.DeserializeKatmaiReport(base.PublicProcessingContext.ChunkFactory, keepReferences: false, globalIDOwnerCollection); ProcessReportOdpWithCachedData processReportOdpWithCachedData = new ProcessReportOdpWithCachedData(base.Configuration, base.PublicProcessingContext, report, errorContext, base.PublicRenderingContext.StoreServerParametersCallback, globalIDOwnerCollection, executionLogContext, m_executionTimeStamp, onDemandMetadata); m_odpReportSnapshot = processReportOdpWithCachedData.Execute(out m_odpContext); }
protected override void ProcessReport(ProcessingErrorContext errorContext, ExecutionLogContext executionLogContext, ref UserProfileState userProfileState) { ChunkFactoryAdapter @object = new ChunkFactoryAdapter(this.m_yukonCompiledDefinition); ChunkFactoryAdapter object2 = new ChunkFactoryAdapter(base.PublicProcessingContext.ChunkFactory); Hashtable definitionObjects = null; Report report = ReportProcessing.DeserializeReport((ReportProcessing.GetReportChunk)@object.GetReportChunk, out definitionObjects); base.m_reportSnapshot = base.Processing.ProcessReport(report, base.PublicProcessingContext, false, false, (ReportProcessing.GetReportChunk)object2.GetReportChunk, (ErrorContext)errorContext, this.m_executionTimeStamp, (ReportProcessing.CreateReportChunk)null, out base.m_context, out userProfileState); Global.Tracer.Assert(null != base.m_context, "(null != m_context)"); executionLogContext.AddLegacyDataProcessingTime(base.m_context.DataProcessingDurationMs); base.m_chunkManager = new ChunkManager.RenderingChunkManager(object2.GetReportChunk, null, definitionObjects, null, report.IntermediateFormatVersion); base.m_renderingContext = new AspNetCore.ReportingServices.ReportRendering.RenderingContext(base.m_reportSnapshot, base.PublicRenderingContext.Format, this.m_executionTimeStamp, report.EmbeddedImages, report.ImageStreamNames, base.PublicRenderingContext.EventInfo, base.PublicProcessingContext.ReportContext, base.ReportUri, base.RenderingParameters, object2.GetReportChunk, base.m_chunkManager, base.PublicProcessingContext.GetResourceCallback, object2.GetChunkMimeType, base.PublicRenderingContext.StoreServerParametersCallback, false, base.PublicProcessingContext.AllowUserProfileState, base.PublicRenderingContext.ReportRuntimeSetup, base.PublicProcessingContext.JobContext, base.PublicProcessingContext.DataProtection); }
protected override void ProcessReport(ProcessingErrorContext errorContext, ExecutionLogContext executionLogContext, ref UserProfileState userProfileState) { ChunkFactoryAdapter @object = new ChunkFactoryAdapter(base.PublicProcessingContext.ChunkFactory); ChunkFactoryAdapter object2 = new ChunkFactoryAdapter(m_originalSnapshotChunks); Hashtable definitionObjects = null; DateTime executionTime; Report report = ReportProcessing.DeserializeReportFromSnapshot(object2.GetReportChunk, out executionTime, out definitionObjects); m_reportSnapshot = base.Processing.ProcessReport(report, base.PublicProcessingContext, snapshotProcessing: true, processWithCachedData: false, object2.GetReportChunk, errorContext, executionTime, null, out m_context, out userProfileState); Global.Tracer.Assert(m_context != null, "(null != context)"); m_chunkManager = new ChunkManager.RenderingChunkManager(@object.GetReportChunk, null, definitionObjects, null, report.IntermediateFormatVersion); m_renderingContext = new Microsoft.ReportingServices.ReportRendering.RenderingContext(m_reportSnapshot, base.PublicRenderingContext.Format, executionTime, report.EmbeddedImages, report.ImageStreamNames, base.PublicRenderingContext.EventInfo, base.PublicProcessingContext.ReportContext, base.ReportUri, null, @object.GetReportChunk, m_chunkManager, base.PublicProcessingContext.GetResourceCallback, @object.GetChunkMimeType, base.PublicRenderingContext.StoreServerParametersCallback, retrieveRenderingInfo: false, base.PublicProcessingContext.AllowUserProfileState, base.PublicRenderingContext.ReportRuntimeSetup, base.PublicProcessingContext.JobContext, base.PublicProcessingContext.DataProtection); }
protected override void ProcessReport(ProcessingErrorContext errorContext, ExecutionLogContext executionLogContext, ref UserProfileState userProfileState) { ChunkFactoryAdapter @object = new ChunkFactoryAdapter(base.PublicProcessingContext.ChunkFactory); m_reportSnapshot = ReportProcessing.DeserializeReportSnapshot(@object.GetReportChunk, @object.CreateReportChunk, base.PublicProcessingContext.GetResourceCallback, base.PublicRenderingContext, base.PublicProcessingContext.DataProtection, out Hashtable instanceObjects, out Hashtable definitionObjects, out IntermediateFormatReader.State declarationsRead, out bool isOldSnapshot); Global.Tracer.Assert(m_reportSnapshot != null, "(null != reportSnapshot)"); Global.Tracer.Assert(m_reportSnapshot.Report != null, "(null != reportSnapshot.Report)"); Global.Tracer.Assert(m_reportSnapshot.ReportInstance != null, "(null != reportSnapshot.ReportInstance)"); m_chunkManager = new ChunkManager.RenderingChunkManager(@object.GetReportChunk, instanceObjects, definitionObjects, declarationsRead, m_reportSnapshot.Report.IntermediateFormatVersion); base.Processing.ProcessShowHideToggle(base.PublicRenderingContext.ShowHideToggle, m_reportSnapshot, base.PublicRenderingContext.EventInfo, m_chunkManager, out bool showHideInformationChanged, out EventInformation newOverrideInformation); if (showHideInformationChanged) { base.PublicRenderingContext.EventInfo = newOverrideInformation; } m_renderingContext = new Microsoft.ReportingServices.ReportRendering.RenderingContext(retrieveRenderingInfo: IsRenderStream || !isOldSnapshot, reportSnapshot: m_reportSnapshot, rendererID: base.PublicRenderingContext.Format, executionTime: m_reportSnapshot.ExecutionTime, embeddedImages: m_reportSnapshot.Report.EmbeddedImages, imageStreamNames: m_reportSnapshot.Report.ImageStreamNames, eventInfo: base.PublicRenderingContext.EventInfo, reportContext: base.PublicRenderingContext.ReportContext, contextUri: base.PublicRenderingContext.ReportUri, reportParameters: base.RenderingParameters, getChunkCallback: @object.GetReportChunk, chunkManager: m_chunkManager, getResourceCallback: base.PublicProcessingContext.GetResourceCallback, getChunkMimeType: @object.GetChunkMimeType, storeServerParameters: base.PublicRenderingContext.StoreServerParametersCallback, allowUserProfileState: base.PublicRenderingContext.AllowUserProfileState, reportRuntimeSetup: base.PublicRenderingContext.ReportRuntimeSetup, jobContext: base.PublicProcessingContext.JobContext, dataProtection: base.PublicProcessingContext.DataProtection); }
protected override OnDemandProcessingResult ConstructProcessingResult(bool eventInfoChanged, Hashtable renderProperties, ProcessingErrorContext errorContext, UserProfileState userProfileState, bool renderingInfoChanged, ExecutionLogContext executionLogContext) { return(new YukonProcessingResult(m_reportSnapshot, m_context.ChunkManager, base.PublicProcessingContext.ChunkFactory, base.PublicProcessingContext.Parameters, m_reportSnapshot.Report.AutoRefresh, GetNumberOfPages(renderProperties), errorContext.Messages, renderingInfoChanged: true, m_renderingContext.RenderingInfoManager, eventInfoChanged, base.PublicRenderingContext.EventInfo, GetUpdatedPaginationMode(renderProperties, base.PublicRenderingContext.ClientPaginationMode), base.PublicProcessingContext.ChunkFactory.ReportProcessingFlags, userProfileState | m_renderingContext.UsedUserProfileState, executionLogContext)); }
protected override OnDemandProcessingResult ConstructProcessingResult(bool eventInfoChanged, Hashtable renderProperties, ProcessingErrorContext errorContext, UserProfileState userProfileState, bool renderingInfoChanged, ExecutionLogContext executionLogContext) { return(new FullOnDemandProcessingResult(this.m_odpReportSnapshot, this.m_odpContext.OdpMetadata.OdpChunkManager, this.m_odpContext.OdpMetadata.SnapshotHasChanged, base.PublicProcessingContext.ChunkFactory, base.PublicProcessingContext.Parameters, this.m_odpReportSnapshot.Report.EvaluateAutoRefresh(null, this.m_odpContext), base.GetNumberOfPages(renderProperties), errorContext.Messages, eventInfoChanged, base.PublicRenderingContext.EventInfo, base.GetUpdatedPaginationMode(renderProperties, base.PublicRenderingContext.ClientPaginationMode), base.PublicProcessingContext.ChunkFactory.ReportProcessingFlags, this.m_odpContext.HasUserProfileState, executionLogContext)); }
protected override void CleanupSuccessfulProcessing(ProcessingErrorContext errorContext) { ReportProcessing.CleanupOnDemandProcessing(this.m_odpContext, true); }
protected override void CleanupSuccessfulProcessing(ProcessingErrorContext errorContext) { AspNetCore.ReportingServices.ReportIntermediateFormat.Persistence.ChunkManager.OnDemandProcessingManager.SerializeMetadata(this.m_metaDataChunkFactory, base.OdpContext.OdpMetadata, base.OdpContext.GetActiveCompatibilityVersion(), base.OdpContext.ProhibitSerializableValues); base.CleanupSuccessfulProcessing(errorContext); }
public static GlobalIDOwnerCollection DeserializeOdpReportSnapshot(ProcessingContext pc, IChunkFactory originalSnapshotChunks, ProcessingErrorContext errorContext, bool fetchSubreports, bool deserializeGroupTree, IConfiguration configuration, ref OnDemandMetadata odpMetadata, out Report report) { GlobalIDOwnerCollection globalIDOwnerCollection = new GlobalIDOwnerCollection(); report = AspNetCore.ReportingServices.ReportProcessing.ReportProcessing.DeserializeKatmaiReport(pc.ChunkFactory, true, globalIDOwnerCollection); IChunkFactory chunkFactory = originalSnapshotChunks ?? pc.ChunkFactory; if (odpMetadata == null) { odpMetadata = OnDemandProcessingManager.DeserializeOnDemandMetadata(chunkFactory, globalIDOwnerCollection); } if (pc.Parameters != null) { pc.Parameters.StoreLabels(); } if (fetchSubreports) { AspNetCore.ReportingServices.ReportProcessing.ReportProcessing.FetchSubReports(report, pc.ChunkFactory, errorContext, odpMetadata, pc.ReportContext, pc.OnDemandSubReportCallback, 0, true, false, globalIDOwnerCollection, pc.QueryParameters); if (deserializeGroupTree) { OnDemandProcessingManager.DeserializeGroupTree(report, chunkFactory, globalIDOwnerCollection, configuration, ref odpMetadata); } } odpMetadata.GlobalIDOwnerCollection = globalIDOwnerCollection; return(globalIDOwnerCollection); }
protected override void CleanupSuccessfulProcessing(ProcessingErrorContext errorContext) { ReportProcessing.CleanupOnDemandProcessing(m_odpContext, resetGroupTreeStorage: true); }
protected virtual void CleanupSuccessfulProcessing(ProcessingErrorContext errorContext) { }
protected abstract void ProcessReport(ProcessingErrorContext errorContext, ExecutionLogContext executionLogContext, ref UserProfileState userProfileState);
protected abstract OnDemandProcessingResult ConstructProcessingResult(bool eventInfoChanged, Hashtable renderProperties, ProcessingErrorContext errorContext, UserProfileState userProfileState, bool renderingInfoChanged, ExecutionLogContext executionLogContext);
public OnDemandProcessingResult Execute(IRenderingExtension newRenderer) { ExecutionLogContext executionLogContext = new ExecutionLogContext(m_publicProcessingContext.JobContext); executionLogContext.StartProcessingTimer(); ProcessingErrorContext processingErrorContext = new ProcessingErrorContext(); CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture; try { bool eventInfoChanged = false; bool renderingInfoChanged = false; UserProfileState userProfileState = UserProfileState.None; Hashtable renderProperties = PublicRenderingContext.GetRenderProperties(IsSnapshotReprocessing); NameValueCollection reportServerParameters = FormServerParameterCollection(PublicRenderingContext.ReportContext.RSRequestParameters.CatalogParameters); PrepareForExecution(); ProcessReport(processingErrorContext, executionLogContext, ref userProfileState); Microsoft.ReportingServices.OnDemandReportRendering.RenderingContext odpRenderingContext = null; try { Microsoft.ReportingServices.OnDemandReportRendering.Report report = PrepareROM(out odpRenderingContext); executionLogContext.StartRenderingTimer(); renderingInfoChanged = InvokeRenderer(newRenderer, report, reportServerParameters, RenderingParameters, PublicRenderingContext.ReportContext.RSRequestParameters.BrowserCapabilities, ref renderProperties, PublicProcessingContext.CreateStreamCallback); UpdateServerTotalPages(newRenderer, ref renderProperties); UpdateEventInfo(odpRenderingContext, PublicRenderingContext, ref eventInfoChanged); } catch (ReportProcessing.DataCacheUnavailableException) { throw; } catch (ReportRenderingException rex) { ReportProcessing.HandleRenderingException(rex); } catch (RSException) { throw; } catch (Exception ex3) { if (AsynchronousExceptionDetection.IsStoppingException(ex3)) { throw; } throw new UnhandledReportRenderingException(ex3); } finally { FinallyBlockForProcessingAndRendering(odpRenderingContext, executionLogContext); } CleanupSuccessfulProcessing(processingErrorContext); return(ConstructProcessingResult(eventInfoChanged, renderProperties, processingErrorContext, userProfileState, renderingInfoChanged, executionLogContext)); } catch (ReportProcessing.DataCacheUnavailableException) { throw; } catch (RSException) { CleanupForException(); throw; } catch (Exception innerException) { CleanupForException(); throw new ReportProcessingException(innerException, processingErrorContext.Messages); } finally { FinalCleanup(); ReportProcessing.UpdateHostingEnvironment(processingErrorContext, PublicProcessingContext.ReportContext, executionLogContext, RunningProcessingEngine, PublicProcessingContext.JobContext); if (currentCulture != null) { Thread.CurrentThread.CurrentCulture = currentCulture; } } }