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)); }
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)); }