public bool ShouldMakeSnapShot(AggregateRoot aggregate, int expectedVersion)
{
if (!IsSnapshotable(aggregate.GetType())) return false;
var i = expectedVersion;
for (var j = 0; j < aggregate.GetUncommittedChanges().Count(); j++)
if (++i % SnapshotInterval == 0 && i != 0) return true;
return false;
}