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);
        }
        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();
                }
            }
        }