/// <summary> /// Gets an ID from the Repository for this Data Source. /// </summary> /// <param name="reportingServer2010">The SQL 2008 R2 reporting server connection</param> /// <param name="path">Where the Datasource is in the Reporting Server</param> /// <returns>The Repository ID.</returns> private int HandleDataSource(SSRS2010.ReportingService2010 reportingServer2010, string path) { int idValue; SSRS2010.DataSourceDefinition dsDef = reportingServer2010.GetDataSourceContents(path); if (!datasourceInRepository.TryGetValue(path, out idValue)) { idValue = repository.GetConnection(dsDef.ConnectString); if (idValue == -1) { idValue = repository.AddObject(path, dsDef.ConnectString, Repository.OLEDBGuid, repository.RootRepositoryObjectID); repository.AddAttribute(idValue, Repository.Attributes.ConnectionString, dsDef.ConnectString); DbConnectionStringBuilder connectionStringBuilder = repository.GetConnectionStringBuilder(dsDef.ConnectString); if (connectionStringBuilder == null) { connectionStringBuilder = repository.GetConnectionStringBuilder(string.Empty); } string Server = repository.GetServer(connectionStringBuilder); string Database = repository.GetDatabase(connectionStringBuilder); if (string.IsNullOrEmpty(Server)) { repository.AddAttribute(idValue, Repository.Attributes.ConnectionServer, "(NULL)"); } else { repository.AddAttribute(idValue, Repository.Attributes.ConnectionServer, Server); } if (string.IsNullOrEmpty(Database)) { repository.AddAttribute(idValue, Repository.Attributes.ConnectionDatabase, "(NULL)"); } else { repository.AddAttribute(idValue, Repository.Attributes.ConnectionDatabase, Database); } } datasourceInRepository.Add(path, idValue); } return(idValue); }