protected override Task DeleteAsync(SnapshotMetadata metadata)
{
var builder = Builders<SnapshotEntry>.Filter;
var filter = builder.Eq(x => x.PersistenceId, metadata.PersistenceId);
if (metadata.SequenceNr > 0 && metadata.SequenceNr < long.MaxValue)
filter &= builder.Eq(x => x.SequenceNr, metadata.SequenceNr);
if (metadata.Timestamp != DateTime.MinValue && metadata.Timestamp != DateTime.MaxValue)
filter &= builder.Eq(x => x.Timestamp, metadata.Timestamp.Ticks);
return _snapshotCollection.Value.FindOneAndDeleteAsync(filter);
}