public void SetCompiledReport(PreviewItemContext context, StoredReport storedReport)
		{
			ReportID key = new ReportID(context);
			m_compiledReports[key] = storedReport;
		}
        private PublishingResult GetCompiledReport(PreviewItemContext itemContext, bool rebuild, out ControlSnapshot snapshot)
        {
            StoredReport storedReport = null;

            if (!rebuild)
            {
                storedReport = m_catalogTempDB.GetCompiledReport(itemContext);
                if (storedReport != null && storedReport.GeneratedExpressionHostWithRefusedPermissions != GenerateExpressionHostWithRefusedPermissions)
                {
                    storedReport = null;
                }
            }
            if (storedReport == null)
            {
                byte[] reportDefinition = m_catalog.GetReportDefinition(itemContext);
                storedReport = new StoredReport(ReportCompiler.CompileReport(itemContext, reportDefinition, GenerateExpressionHostWithRefusedPermissions, out snapshot), snapshot, GenerateExpressionHostWithRefusedPermissions);
                m_catalogTempDB.SetCompiledReport(itemContext, storedReport);
                ILocalCatalog2 localCatalog = m_catalog as ILocalCatalog2;
                foreach (DataSourceInfo dataSource in storedReport.PublishingResult.DataSources)
                {
                    string userName = null;
                    string password = null;
                    if (localCatalog != null && localCatalog.GetReportDataSourceCredentials(itemContext, dataSource, out userName, out password))
                    {
                        dataSource.SetUserName(userName, DataProtectionLocal.Instance);
                        dataSource.SetPassword(password, DataProtectionLocal.Instance);
                        dataSource.CredentialsRetrieval = DataSourceInfo.CredentialsRetrievalOption.Store;
                    }
                    else
                    {
                        if (dataSource.IsReference || dataSource.CredentialsRetrieval == DataSourceInfo.CredentialsRetrievalOption.Integrated)
                        {
                            continue;
                        }
                        if (localCatalog == null)
                        {
                            m_catalog.GetReportDataSourceCredentials(itemContext, dataSource.Name, out userName, out password);
                            bool num = !string.IsNullOrEmpty(userName);
                            if (num)
                            {
                                dataSource.SetUserName(userName, DataProtectionLocal.Instance);
                            }
                            bool flag = password != null;
                            if (flag)
                            {
                                dataSource.SetPassword(password, DataProtectionLocal.Instance);
                            }
                            if (num || flag)
                            {
                                dataSource.CredentialsRetrieval = DataSourceInfo.CredentialsRetrievalOption.Store;
                                continue;
                            }
                        }
                        if (string.IsNullOrEmpty(dataSource.Prompt))
                        {
                            dataSource.CredentialsRetrieval = DataSourceInfo.CredentialsRetrievalOption.None;
                        }
                        else
                        {
                            dataSource.CredentialsRetrieval = DataSourceInfo.CredentialsRetrievalOption.Prompt;
                        }
                    }
                }
            }
            m_securityValidator(itemContext, storedReport.PublishingResult);
            snapshot = storedReport.Snapshot;
            return(storedReport.PublishingResult);
        }