public async Task ReplayMessagesAsync(string persistenceId, long fromSequenceNr, long toSequenceNr, long max, IActorRef sender, Action<IPersistentRepresentation> recoveryCallback)
{
using (var connection = CreateDbConnection())
{
await connection.OpenAsync();
var sqlCommand = QueryBuilder.SelectMessages(persistenceId, fromSequenceNr, toSequenceNr, max);
CompleteCommand(sqlCommand, connection);
var reader = await sqlCommand.ExecuteReaderAsync(_pendingRequestsCancellation.Token);
try
{
while (reader.Read())
{
var persistent = QueryMapper.Map(reader, sender);
if (persistent != null)
recoveryCallback(persistent);
}
}
finally
{
reader.Close();
}
}
}