public bool IsDefaultValue(IBusinessObject obj, PropertyBase property)
        {
            var domainObject = ArgumentUtility.CheckNotNullAndType <IDomainObject> ("obj", obj);

            ArgumentUtility.CheckNotNull("property", property);

            if (domainObject.GetState() != StateType.New)
            {
                return(false);
            }

            var propertyDefinition = domainObject.ID.ClassDefinition.ResolveProperty(property.PropertyInfo);

            if (propertyDefinition != null)
            {
                var properties = new PropertyIndexer(domainObject);
                return(!properties[propertyDefinition.PropertyName].HasBeenTouched);
            }

            return(_innerDefaultValueStrategy.IsDefaultValue(obj, property));
        }
        public bool IsDefaultValue(IBusinessObject obj)
        {
            ArgumentUtility.CheckNotNull("obj", obj);

            return(_defaultValueStrategy.IsDefaultValue(obj, this));
        }