public StoredReport GetCompiledReport(PreviewItemContext context)
        {
            ReportID     key    = new ReportID(context);
            StoredReport result = default(StoredReport);

            this.m_compiledReports.TryGetValue(key, out result);
            return(result);
        }
        private PublishingResult GetCompiledReport(PreviewItemContext itemContext, bool rebuild, out ControlSnapshot snapshot)
        {
            StoredReport storedReport = null;

            if (!rebuild)
            {
                storedReport = this.m_catalogTempDB.GetCompiledReport(itemContext);
                if (storedReport != null && storedReport.GeneratedExpressionHostWithRefusedPermissions != this.GenerateExpressionHostWithRefusedPermissions)
                {
                    storedReport = null;
                }
            }
            if (storedReport == null)
            {
                byte[]           reportDefinition = this.m_catalog.GetReportDefinition(itemContext);
                PublishingResult publishingResult = ReportCompiler.CompileReport((ICatalogItemContext)itemContext, reportDefinition, this.GenerateExpressionHostWithRefusedPermissions, out snapshot);
                storedReport = new StoredReport(publishingResult, snapshot, this.GenerateExpressionHostWithRefusedPermissions);
                this.m_catalogTempDB.SetCompiledReport(itemContext, storedReport);
                foreach (DataSourceInfo dataSource in storedReport.PublishingResult.DataSources)
                {
                    if (!dataSource.IsReference && dataSource.CredentialsRetrieval != DataSourceInfo.CredentialsRetrievalOption.Integrated)
                    {
                        string text  = null;
                        string text2 = null;
                        this.m_catalog.GetReportDataSourceCredentials(itemContext, dataSource.Name, out text, out text2);
                        bool flag = !string.IsNullOrEmpty(text);
                        if (flag)
                        {
                            dataSource.SetUserName(text, DataProtectionLocal.Instance);
                        }
                        bool flag2 = text2 != null;
                        if (flag2)
                        {
                            dataSource.SetPassword(text2, DataProtectionLocal.Instance);
                        }
                        if (flag || flag2)
                        {
                            dataSource.CredentialsRetrieval = DataSourceInfo.CredentialsRetrievalOption.Store;
                        }
                        else if (string.IsNullOrEmpty(dataSource.Prompt))
                        {
                            dataSource.CredentialsRetrieval = DataSourceInfo.CredentialsRetrievalOption.None;
                        }
                        else
                        {
                            dataSource.CredentialsRetrieval = DataSourceInfo.CredentialsRetrievalOption.Prompt;
                        }
                    }
                }
            }
            this.m_securityValidator(itemContext, storedReport.PublishingResult);
            snapshot = storedReport.Snapshot;
            return(storedReport.PublishingResult);
        }
        public void SetCompiledReport(PreviewItemContext context, StoredReport storedReport)
        {
            ReportID key = new ReportID(context);

            this.m_compiledReports[key] = storedReport;
        }