コード例 #1
0
 public SqlQueueFactory()
 {
     configuration = new SubscriptionManagerConfiguration();
     scriptProvider = new ScriptProvider();
     databaseConnectionFactory = DatabaseConnectionFactory.Default();
     databaseGateway = DatabaseGateway.Default();
 }
コード例 #2
0
ファイル: SqlQueue.cs プロジェクト: nnyamhon/shuttle-esb
        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();
        }
コード例 #3
0
        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;
        }