public Task Configure(string endpointName, EndpointConfiguration configuration, RunSettings settings, PublisherMetadata publisherMetadata)
    {
        if (configuration.IsSendOnly())
        {
            return(Task.FromResult(0));
        }

        var lastDot = endpointName.LastIndexOf('.');

        if (lastDot > 0)
        {
            endpointName = endpointName.Substring(lastDot + 1) + Math.Abs(endpointName.GetHashCode());
        }
        var tablePrefix = TableNameCleaner.Clean(endpointName).Substring(0, Math.Min(endpointName.Length, 24));

        Console.WriteLine($"Using EndpointName='{endpointName}', TablePrefix='{tablePrefix}'");
        endpointHelper = new ConfigureEndpointHelper(configuration, tablePrefix, OracleConnectionBuilder.Build, BuildSqlDialect.Oracle, FilterTableExists);
        var persistence = configuration.UsePersistence <SqlPersistence>();

        persistence.SqlDialect <SqlDialect.Oracle>();
        persistence.ConnectionBuilder(OracleConnectionBuilder.Build);
        persistence.TablePrefix($"{tablePrefix}_");
        var subscriptions = persistence.SubscriptionSettings();

        subscriptions.DisableCache();
        persistence.DisableInstaller();

        //Force Saga table names to 27 characters to fit in Oracle
        var sagaSettings = persistence.SagaSettings();

        sagaSettings.NameFilter(sagaName => sagaName.Substring(0, Math.Min(27, sagaName.Length)));

        return(Task.FromResult(0));
    }
    public Task Configure(string endpointName, EndpointConfiguration configuration, RunSettings settings, PublisherMetadata publisherMetadata)
    {
        if (configuration.IsSendOnly())
        {
            return(Task.FromResult(0));
        }

        var hashcodeString = Math.Abs(endpointName.GetHashCode()).ToString();
        var suffixLength   = 19 - hashcodeString.Length;
        var nameSuffix     = endpointName.Substring(Math.Max(0, endpointName.Length - suffixLength));

        endpointName = nameSuffix + hashcodeString;
        var tablePrefix = TableNameCleaner.Clean(endpointName).Substring(0, Math.Min(endpointName.Length, 19));

        Console.WriteLine($"Using EndpointName='{endpointName}', TablePrefix='{tablePrefix}'");

        endpointHelper = new ConfigureEndpointHelper(configuration, tablePrefix, PostgreSqlConnectionBuilder.Build, BuildSqlDialect.PostgreSql, FilterTableExists);
        var persistence = configuration.UsePersistence <SqlPersistence>();

        persistence.ConnectionBuilder(PostgreSqlConnectionBuilder.Build);
        var sqlDialect = persistence.SqlDialect <SqlDialect.PostgreSql>();

        persistence.TablePrefix($"{tablePrefix}_");
        sqlDialect.JsonBParameterModifier(parameter =>
        {
            var npgsqlParameter          = (NpgsqlParameter)parameter;
            npgsqlParameter.NpgsqlDbType = NpgsqlDbType.Jsonb;
        });

        var subscriptions = persistence.SubscriptionSettings();

        subscriptions.DisableCache();
        persistence.DisableInstaller();
        return(Task.FromResult(0));
    }
        internal static string GetTablePrefix(this ReadOnlySettings settings)
        {
            if (settings.TryGet("SqlPersistence.TablePrefix", out string tablePrefix))
            {
                return(tablePrefix);
            }
            var endpointName = settings.EndpointName();
            var clean        = TableNameCleaner.Clean(endpointName);

            return($"{clean}_");
        }
    public Task Configure(string endpointName, EndpointConfiguration configuration, RunSettings settings, PublisherMetadata publisherMetadata)
    {
        if (configuration.IsSendOnly())
        {
            return(Task.FromResult(0));
        }
        var tablePrefix = TableNameCleaner.Clean(endpointName);

        endpointHelper = new ConfigureEndpointHelper(configuration, tablePrefix, MsSqlConnectionBuilder.Build, BuildSqlVariant.MsSqlServer, FilterTableExists);
        var persistence = configuration.UsePersistence <SqlPersistence>();

        persistence.ConnectionBuilder(MsSqlConnectionBuilder.Build);
        var subscriptions = persistence.SubscriptionSettings();

        subscriptions.DisableCache();
        persistence.DisableInstaller();
        return(Task.FromResult(0));
    }
Example #5
0
    public Task Configure(string endpointName, EndpointConfiguration configuration, RunSettings settings, PublisherMetadata publisherMetadata)
    {
        if (configuration.IsSendOnly())
        {
            return(Task.FromResult(0));
        }
        var tablePrefix = TableNameCleaner.Clean(endpointName).Substring(0, Math.Min(endpointName.Length, 35));

        endpointHelper = new ConfigureEndpointHelper(configuration, tablePrefix, MySqlConnectionBuilder.Build, BuildSqlDialect.MySql);
        var persistence = configuration.UsePersistence <SqlPersistence>();

        persistence.ConnectionBuilder(MySqlConnectionBuilder.Build);
        persistence.SqlDialect <SqlDialect.MySql>();
        persistence.TablePrefix($"{tablePrefix}_");
        var subscriptions = persistence.SubscriptionSettings();

        subscriptions.DisableCache();
        persistence.DisableInstaller();
        return(Task.FromResult(0));
    }