protected override async Task <SelectedSnapshot> LoadAsync(string persistenceId, SnapshotSelectionCriteria criteria) { var snapshots = await Database.SortedSetRangeByScoreAsync( GetSnapshotKey(persistenceId), criteria.MaxSequenceNr, -1, Exclude.None, Order.Descending); var found = snapshots .Select(c => PersistentFromBytes(c)) .Where(c => criteria.Matches(c.Metadata)) .OrderByDescending(x => x.Metadata.SequenceNr) .ThenByDescending(x => x.Metadata.Timestamp) .FirstOrDefault(); return(found); }