CompositeConnectionStringProvider ConfigureConnectionStringProvider(FeatureConfigurationContext context, LocalConnectionParams localConnectionParams) { const string transportConnectionStringPrefix = "NServiceBus/Transport/"; var configConnectionStrings = connectionStrings .Where(x => x.Name.StartsWith(transportConnectionStringPrefix)) .Select(x => { string schema; var connectionString = x.ConnectionString.ExtractSchemaName(out schema); var endpoint = x.Name.Replace(transportConnectionStringPrefix, String.Empty); return(EndpointConnectionInfo.For(endpoint).UseConnectionString(connectionString).UseSchema(schema)); }); var configProvidedPerEndpointConnectionStrings = new CollectionConnectionStringProvider(configConnectionStrings, localConnectionParams); var programmaticallyProvidedPerEndpointConnectionStrings = CreateProgrammaticPerEndpointConnectionStringProvider(context, localConnectionParams); var connectionStringProvider = new CompositeConnectionStringProvider( configProvidedPerEndpointConnectionStrings, programmaticallyProvidedPerEndpointConnectionStrings, new DefaultConnectionStringProvider(localConnectionParams) ); return(connectionStringProvider); }
CompositeConnectionStringProvider ConfigureConnectionStringProvider(FeatureConfigurationContext context, LocalConnectionParams localConnectionParams) { const string transportConnectionStringPrefix = "NServiceBus/Transport/"; var configConnectionStrings = connectionStrings .Where(x => x.Name.StartsWith(transportConnectionStringPrefix)) .Select(x => { string schema; var connectionString = x.ConnectionString.ExtractSchemaName(out schema); var endpoint = x.Name.Replace(transportConnectionStringPrefix, String.Empty); return EndpointConnectionInfo.For(endpoint).UseConnectionString(connectionString).UseSchema(schema); }); var configProvidedPerEndpointConnectionStrings = new CollectionConnectionStringProvider(configConnectionStrings, localConnectionParams); var programmaticallyProvidedPerEndpointConnectionStrings = CreateProgrammaticPerEndpointConnectionStringProvider(context, localConnectionParams); var connectionStringProvider = new CompositeConnectionStringProvider( configProvidedPerEndpointConnectionStrings, programmaticallyProvidedPerEndpointConnectionStrings, new DefaultConnectionStringProvider(localConnectionParams) ); return connectionStringProvider; }