public DbCommand SelectMessages(string persistenceId, long fromSequenceNr, long toSequenceNr, long max)
{
var sb = new StringBuilder(@"
SELECT persistence_id, sequence_nr, is_deleted, manifest, payload FROM ").Append(_tableName)
.Append(" WHERE persistence_id = ? ");
if (fromSequenceNr > 0)
{
if (toSequenceNr != long.MaxValue)
sb.Append(" AND sequence_nr BETWEEN ")
.Append(fromSequenceNr)
.Append(" AND ")
.Append(toSequenceNr);
else
sb.Append(" AND sequence_nr >= ").Append(fromSequenceNr);
}
if (toSequenceNr != long.MaxValue)
sb.Append(" AND sequence_nr <= ").Append(toSequenceNr);
if (max != long.MaxValue)
{
sb.Append(" LIMIT ").Append(max);
}
var command = new SQLiteCommand(sb.ToString())
{
Parameters = { new SQLiteParameter { Value = persistenceId } }
};
return command;
}