public SqlQueueFactory() { configuration = new SubscriptionManagerConfiguration(); scriptProvider = new ScriptProvider(); databaseConnectionFactory = DatabaseConnectionFactory.Default(); databaseGateway = DatabaseGateway.Default(); }
public SqlQueue(Uri uri, ISubscriptionManagerConfiguration subscriptionManagerConfiguration, IScriptProvider scriptProvider, IDatabaseConnectionFactory databaseConnectionFactory, IDatabaseGateway databaseGateway) { Guard.AgainstNull(uri, "uri"); Guard.AgainstNull(subscriptionManagerConfiguration, "subscriptionManagerConfiguration"); Guard.AgainstNull(scriptProvider, "scriptProvider"); Guard.AgainstNull(databaseConnectionFactory, "databaseConnectionFactory"); Guard.AgainstNull(databaseGateway, "databaseGateway"); this.subscriptionManagerConfiguration = subscriptionManagerConfiguration; this.scriptProvider = scriptProvider; this.databaseConnectionFactory = databaseConnectionFactory; this.databaseGateway = databaseGateway; if (!uri.Scheme.Equals(SCHEME, StringComparison.InvariantCultureIgnoreCase)) { throw new InvalidSchemeException(SCHEME, uri.ToString()); } var builder = new UriBuilder(uri); if (uri.LocalPath == "/" || uri.Segments.Length != 2) { throw new UriFormatException(string.Format(ESBResources.UriFormatException, "sql://{{connection name}}/{{table name}}", Uri)); } log = Log.For(this); Uri = builder.Uri; dataSource = new DataSource(Uri.Host, new SqlServerDbDataParameterFactory(), new SqlServerContainsQueryFactory(), new SqlServerInsertQueryFactory(), new SqlServerUpdateQueryFactory(), new SqlServerDeleteQueryFactory(), new SqlServerSelectQueryFactory()); using (databaseConnectionFactory.Create(dataSource)) { var host = databaseGateway.GetScalarUsing<string>(dataSource, RawQuery.CreateFrom("select host_name()")); IsLocal = (host ?? string.Empty) == Environment.MachineName; } tableName = Uri.Segments[1]; IsTransactional = true; BuildQueries(); }
public SubscriptionManager(ISubscriptionManagerConfiguration subscriptionManagerConfiguration, IScriptProvider scriptProvider, IDatabaseConnectionFactory databaseConnectionFactory, IDatabaseGateway databaseGateway) { Guard.AgainstNull(subscriptionManagerConfiguration, "subscriptionManagerConfiguration"); Guard.AgainstNull(scriptProvider, "scriptProvider"); Guard.AgainstNull(databaseConnectionFactory, "databaseConnectionFactory"); Guard.AgainstNull(databaseGateway, "databaseGateway"); this.subscriptionManagerConfiguration = subscriptionManagerConfiguration; this.scriptProvider = scriptProvider; this.databaseConnectionFactory = databaseConnectionFactory; this.databaseGateway = databaseGateway; }