コード例 #1
0
        private DataSourceInfoCollection CombineOnSetDefinition(DataSourceInfoCollection newDataSources, bool keepOriginalDataSourceId, bool overrideOriginalConnectString)
        {
            DataSourceInfoCollection dataSourceInfoCollection = new DataSourceInfoCollection();

            foreach (DataSourceInfo newDataSource in newDataSources)
            {
                DataSourceInfo byOriginalName = GetByOriginalName(newDataSource.OriginalName);
                if (byOriginalName == null)
                {
                    dataSourceInfoCollection.Add(newDataSource);
                    continue;
                }
                if (!keepOriginalDataSourceId)
                {
                    byOriginalName.ID = newDataSource.ID;
                }
                if (overrideOriginalConnectString)
                {
                    byOriginalName.SetOriginalConnectionString(newDataSource.OriginalConnectionStringEncrypted);
                    byOriginalName.SetOriginalConnectStringExpressionBased(newDataSource.OriginalConnectStringExpressionBased);
                }
                dataSourceInfoCollection.Add(byOriginalName);
            }
            return(dataSourceInfoCollection);
        }
コード例 #2
0
        public DataSourceInfoCollection(DataSourceInfoCollection other)
        {
            RSTrace processingTracer = RSTrace.ProcessingTracer;

            processingTracer.Assert(other != null);
            processingTracer.Assert(other.m_collection != null);
            m_collection = (Hashtable)other.m_collection.Clone();
        }
コード例 #3
0
 internal DataSourceInfo GetByName(string name, ICatalogItemContext report)
 {
     if (m_collectionByReport != null)
     {
         DataSourceInfoCollection dataSourceInfoCollection = (DataSourceInfoCollection)m_collectionByReport[report.StableItemPath];
         if (dataSourceInfoCollection != null)
         {
             return(dataSourceInfoCollection.GetByOriginalName(name));
         }
     }
     return(null);
 }
コード例 #4
0
        private void AddToCollectionByReport(DataSourceInfo dataSource, ICatalogItemContext report)
        {
            DataSourceInfoCollection dataSourceInfoCollection = null;

            if (m_collectionByReport == null)
            {
                m_collectionByReport = new Hashtable();
            }
            else
            {
                dataSourceInfoCollection = (DataSourceInfoCollection)m_collectionByReport[report.StableItemPath];
            }
            if (dataSourceInfoCollection == null)
            {
                dataSourceInfoCollection = new DataSourceInfoCollection();
                m_collectionByReport.Add(report.StableItemPath, dataSourceInfoCollection);
            }
            dataSourceInfoCollection.Add(dataSource);
        }
コード例 #5
0
        public DataSourceInfoCollection CombineOnSetDataSources(DataSourceInfoCollection newDataSources)
        {
            DataSourceInfoCollection dataSourceInfoCollection = new DataSourceInfoCollection();

            foreach (DataSourceInfo newDataSource in newDataSources)
            {
                DataSourceInfo byOriginalName = GetByOriginalName(newDataSource.OriginalName);
                if (byOriginalName == null)
                {
                    throw new DataSourceNotFoundException(newDataSource.OriginalName);
                }
                newDataSource.ID = byOriginalName.ID;
                newDataSource.SetOriginalConnectionString(byOriginalName.OriginalConnectionStringEncrypted);
                newDataSource.SetOriginalConnectStringExpressionBased(byOriginalName.OriginalConnectStringExpressionBased);
                dataSourceInfoCollection.Add(newDataSource);
            }
            IEnumerator enumerator = GetEnumerator();

            try
            {
                while (enumerator.MoveNext())
                {
                    DataSourceInfo dataSourceInfo2 = (DataSourceInfo)enumerator.Current;
                    if (newDataSources.GetByOriginalName(dataSourceInfo2.OriginalName) == null)
                    {
                        dataSourceInfoCollection.Add(dataSourceInfo2);
                    }
                }
                return(dataSourceInfoCollection);
            }
            finally
            {
                IDisposable disposable = enumerator as IDisposable;
                if (disposable != null)
                {
                    disposable.Dispose();
                }
            }
        }
コード例 #6
0
 public DataSourceInfoCollection CombineOnSetDefinitionWithoutSideEffects(DataSourceInfoCollection newDataSources)
 {
     return(CombineOnSetDefinition(newDataSources, keepOriginalDataSourceId: false, overrideOriginalConnectString: false));
 }
コード例 #7
0
 public DataSourceInfoCollection CombineOnSetDefinitionKeepOriginalDataSourceId(DataSourceInfoCollection newDataSources)
 {
     return(CombineOnSetDefinition(newDataSources, keepOriginalDataSourceId: true, overrideOriginalConnectString: true));
 }