private bool IsConceptMemberEqual(IConceptInfo newConcept, IConceptInfo existingConcept, ConceptMember conceptMemeber) { if (conceptMemeber.IsConceptInfo) { if ((conceptMemeber.GetValue(existingConcept) as IConceptInfo).GetKey() != (conceptMemeber.GetValue(newConcept) as IConceptInfo).GetKey()) { return(false); } else { return(true); } } else { var value1 = conceptMemeber.GetValue(existingConcept); var value2 = conceptMemeber.GetValue(newConcept); if (value1 == null) { return(value2 == null); } else if (value2 == null) { return(false); } else { return(value1.Equals(value2)); } } }
public UnresolvedReference(ConceptDescription dependant, ConceptMember referenceMember) { Dependant = dependant; Member = referenceMember; ReferencedStub = (IConceptInfo)Member.GetValue(Dependant.Concept); ReferencedKey = ReferencedStub?.GetKey(); }
private static void AppendMember(StringBuilder text, IConceptInfo ci, ConceptMember member, bool exceptionOnNullMember) { object memberValue = member.GetValue(ci); if (memberValue == null) { if (exceptionOnNullMember) { throw new DslSyntaxException(ci, string.Format( "{0}'s property {1} is null. Info: {2}.", ci.GetType().Name, member.Name, ci.GetErrorDescription())); } else { text.Append("<null>"); } } else if (member.IsConceptInfo) { IConceptInfo value = (IConceptInfo)member.GetValue(ci); if (member.ValueType == typeof(IConceptInfo)) { text.Append(BaseConceptInfoType(value).Name).Append(":"); } AppendMembers(text, value, SerializationOptions.KeyMembers, exceptionOnNullMember); } else if (member.ValueType == typeof(string)) { text.Append(SafeDelimit(member.GetValue(ci).ToString())); } else { throw new FrameworkException(string.Format( "IConceptInfo member {0} of type {1} in {2} is not supported.", member.Name, member.ValueType.Name, ci.GetType().Name)); } }
private static void AppendMember(StringBuilder text, IConceptInfo ci, ConceptMember member, bool exceptionOnNullMember) { object memberValue = member.GetValue(ci); if (memberValue == null) if (exceptionOnNullMember) throw new DslSyntaxException(ci, string.Format( "{0}'s property {1} is null. Info: {2}.", ci.GetType().Name, member.Name, ci.GetErrorDescription())); else text.Append("<null>"); else if (member.IsConceptInfo) { IConceptInfo value = (IConceptInfo)member.GetValue(ci); if (member.ValueType == typeof(IConceptInfo)) text.Append(BaseConceptInfoType(value).Name).Append(":"); AppendMembers(text, value, SerializationOptions.KeyMembers, exceptionOnNullMember); } else if (member.ValueType == typeof(string)) text.Append(SafeDelimit(member.GetValue(ci).ToString())); else throw new FrameworkException(string.Format( "IConceptInfo member {0} of type {1} in {2} is not supported.", member.Name, member.ValueType.Name, ci.GetType().Name)); }