/// <summary> /// Replays all events with given tag withing provided boundaries from current database. /// </summary> /// <param name="replay">TBD</param> /// <returns>TBD</returns> protected virtual async Task <long> ReplayTaggedMessagesAsync(ReplayTaggedMessages replay) { using (var connection = CreateDbConnection()) { await connection.OpenAsync(); return(await QueryExecutor .SelectByTagAsync(connection, _pendingRequestsCancellation.Token, replay.Tag, replay.FromOffset, replay.ToOffset, replay.Max, replayedTagged => { foreach (var adapted in AdaptFromJournal(replayedTagged.Persistent)) { replay.ReplyTo.Tell(new ReplayedTaggedMessage(adapted, replayedTagged.Tag, replayedTagged.Offset), ActorRefs.NoSender); } })); } }
/// <summary> /// Replays all events with given tag withing provided boundaries from current database. /// </summary> protected virtual async Task<long> ReplayTaggedMessagesAsync(ReplayTaggedMessages replay) { using (var connection = CreateDbConnection()) { await connection.OpenAsync(); return await QueryExecutor .SelectByTagAsync(connection, _pendingRequestsCancellation.Token, replay.Tag, replay.FromOffset, replay.ToOffset, replay.Max, replayedTagged => { foreach(var adapted in AdaptFromJournal(replayedTagged.Persistent)) { replay.ReplyTo.Tell(new ReplayedTaggedMessage(adapted, replayedTagged.Tag, replayedTagged.Offset), ActorRefs.NoSender); } }); } }