protected abstract IDurableIncoming buildDurableIncoming(DurableStorageSession durableStorageSession, DatabaseSettings settings, JasperOptions options);
internal static DbCommand BuildIncomingStorageCommand(IEnumerable <Envelope> envelopes, DatabaseSettings settings) { var cmd = settings.CreateEmptyCommand(); var builder = new CommandBuilder(cmd); foreach (var envelope in envelopes) { envelope.EnsureData(); var id = builder.AddParameter(envelope.Id); var status = builder.AddParameter(envelope.Status); var owner = builder.AddParameter(envelope.OwnerId); var attempts = builder.AddParameter(envelope.Attempts); var time = builder.AddParameter(envelope.ExecutionTime); var body = builder.AddParameter(envelope.Serialize()); builder.Append( $"insert into {settings.SchemaName}.{IncomingTable} (id, status, owner_id, execution_time, attempts, body) values (@{id.ParameterName}, @{status.ParameterName}, @{owner.ParameterName}, @{time.ParameterName}, @{attempts.ParameterName}, @{body.ParameterName});"); } builder.Apply(); return(cmd); }
protected abstract IDurableIncoming buildDurableIncoming(DurableStorageSession durableStorageSession, DatabaseSettings databaseSettings, AdvancedSettings settings);
protected abstract string determineOutgoingEnvelopeSql(DatabaseSettings databaseSettings, AdvancedSettings settings);
public DurableStorageSession(DatabaseSettings settings, CancellationToken cancellation) { _settings = settings; _cancellation = cancellation; }