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;
        }