private bool _isInvalidFkTarget(CswEnumNbtViewPropIdType NewFkPropIdType, Int32 inFKValue, CswEnumNbtViewPropIdType inValuePropType, Int32 inValuePropId) { bool RetClearPropVal = false; if (NewFkPropIdType == CswEnumNbtViewPropIdType.NodeTypePropId) { CswNbtMetaDataNodeTypeProp FkNtp = _CswNbtFieldResources.CswNbtResources.MetaData.getNodeTypeProp(inFKValue); RetClearPropVal = (null == FkNtp); if (false == RetClearPropVal) { RetClearPropVal = _isInvalidRelationship(FkNtp.FKType, FkNtp.FKValue, inValuePropType, inValuePropId); } } else if (NewFkPropIdType == CswEnumNbtViewPropIdType.ObjectClassPropId) { CswNbtMetaDataObjectClassProp FkOcp = _CswNbtFieldResources.CswNbtResources.MetaData.getObjectClassProp(inFKValue); RetClearPropVal = (null == FkOcp); if (false == RetClearPropVal) { RetClearPropVal = _isInvalidRelationship(FkOcp.FKType, FkOcp.FKValue, inValuePropType, inValuePropId); } } return(RetClearPropVal); }
/// <summary> /// Returns true if the relationship is invalid /// </summary> private bool _isInvalidRelationship(CswEnumNbtViewRelatedIdType RelatedIdType, Int32 FkValue, CswEnumNbtViewPropIdType inValuePropType, Int32 inValuePropId) { bool RetIsInvalid = false; //if( RelatedIdType == NbtViewRelatedIdType.NodeTypeId ) //{ // CswNbtMetaDataNodeType FkRelationshipTargetNt = _CswNbtFieldResources.CswNbtResources.MetaData.getNodeType( FkValue ); // RetIsInvalid = ( null == FkRelationshipTargetNt ); // if( false == RetIsInvalid ) // { // CswNbtMetaDataNodeTypeProp ValueNtp = _CswNbtFieldResources.CswNbtResources.MetaData.getNodeTypeProp( inValuePropId ); // RetIsInvalid = ( null == ValueNtp || // _CswNbtFieldResources.CswNbtResources.MetaData.getNodeTypeFirstVersion( ValueNtp.NodeTypeId ) != FkRelationshipTargetNt.getFirstVersionNodeType() ); // } //} //else if( RelatedIdType == NbtViewRelatedIdType.ObjectClassId ) //{ // CswNbtMetaDataObjectClass FkRelationshipTargetOc = _CswNbtFieldResources.CswNbtResources.MetaData.getObjectClass( FkValue ); // RetIsInvalid = ( null == FkRelationshipTargetOc ); // if( false == RetIsInvalid ) // { // CswNbtMetaDataObjectClassProp ValueOcp = _CswNbtFieldResources.CswNbtResources.MetaData.getObjectClassProp( inValuePropId ); // RetIsInvalid = ( null == ValueOcp || ( ValueOcp.getObjectClass().ObjectClass != FkRelationshipTargetOc.ObjectClass ) ); // } //} //else if( RelatedIdType == NbtViewRelatedIdType.PropertySetId ) //{ // CswNbtMetaDataPropertySet FkRelationshipTargetPs = _CswNbtFieldResources.CswNbtResources.MetaData.getPropertySet( FkValue ); // RetIsInvalid = ( null == FkRelationshipTargetPs ); // if( false == RetIsInvalid ) // { // CswNbtMetaDataObjectClassProp ValueOcp = _CswNbtFieldResources.CswNbtResources.MetaData.getObjectClassProp( inValuePropId ); // RetIsInvalid = ( null == ValueOcp || // null == ValueOcp.getObjectClass().getPropertySet() || // ValueOcp.getObjectClass().getPropertySet().Name != FkRelationshipTargetPs.Name ); // } //} if (inValuePropType == CswEnumNbtViewPropIdType.NodeTypePropId) { CswNbtMetaDataNodeTypeProp ValuePropNTP = _CswNbtFieldResources.CswNbtResources.MetaData.getNodeTypeProp(inValuePropId); RetIsInvalid = false == (CswNbtViewRelationship.Matches(_CswNbtFieldResources.CswNbtResources, RelatedIdType, FkValue, ValuePropNTP.getNodeType())); } else if (inValuePropType == CswEnumNbtViewPropIdType.ObjectClassPropId) { CswNbtMetaDataObjectClassProp ValuePropOCP = _CswNbtFieldResources.CswNbtResources.MetaData.getObjectClassProp(inValuePropId); RetIsInvalid = false == (CswNbtViewRelationship.Matches(_CswNbtFieldResources.CswNbtResources, RelatedIdType, FkValue, ValuePropOCP.getObjectClass())); } return(RetIsInvalid); }