示例#1
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);
 }
        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();
                }
            }
        }