public bool ValidateChanges(ValidateChangeDelegate changeValidator)
        {
            var cur = CurrentRevision.Properties;
            var nuu = NewRevision.GetProperties();

            foreach (var key in ChangedKeys)
            {
                if (!changeValidator(key, cur.Get(key), nuu.Get(key)))
                {
                    Reject(String.Format("Illegal change to '{0}' property", key));
                    return(false);
                }
            }
            return(true);
        }
        public bool ValidateChanges(ValidateChangeDelegate changeValidator)
        {
            var cur = CurrentRevision.Properties;
            var nuu = NewRevision.GetProperties();

            foreach(var key in ChangedKeys) {
                if(!changeValidator(key, cur.Get(key), nuu.Get(key))) {
                    Reject(String.Format("Illegal change to '{0}' property", key));
                    return false;
                }
            }
            return true;
        }