//public bool ShouldWriteUpdateQuery { get; set; } //public void OnUpdated() //{ // if (Updated != null) // Updated(this, null); //} public ChildRelationshipInfo AddChildRelationshipInfo(RelationshipDTO relationship) { var childRelationshipInfo = new ChildRelationshipInfo() { Relationship = relationship, SourceData = this }; ChildRelationshipInfos.Add(childRelationshipInfo); CheckChildRelationshipInfoChangeMonitor(); return(childRelationshipInfo); }
public object GetValueSomeHow(EntityRelationshipTailDTO valueRelationshipTail, int valueColumnID) { if (valueRelationshipTail == null) { var proprty = GetProperty(valueColumnID); return(proprty?.Value); } else { DP_DataRepository relatedData = null; if (ParantChildRelationshipInfo != null && ParantChildRelationshipInfo.Relationship.PairRelationshipID == valueRelationshipTail.Relationship.ID) { if (ParantChildRelationshipInfo.Relationship.PairRelationshipID == valueRelationshipTail.Relationship.ID) { relatedData = ParantChildRelationshipInfo.SourceData; } } else if (ChildRelationshipInfos.Any(x => x.Relationship.ID == valueRelationshipTail.Relationship.ID)) { var childInfo = ChildRelationshipInfos.First(x => x.Relationship.ID == valueRelationshipTail.Relationship.ID); if (childInfo.RelatedData.Count != 1) { throw new Exception("asav"); } else { relatedData = childInfo.RelatedData.First(); } } if (relatedData != null) { return(relatedData.GetValueSomeHow(valueRelationshipTail.ChildTail, valueColumnID)); } else { if (DataView != null) { if (DataView.Properties.Any(x => x.RelationshipIDTailPath == valueRelationshipTail.RelationshipIDPath && x.ColumnID == valueColumnID)) { return(DataView.Properties.First(x => x.RelationshipIDTailPath == valueRelationshipTail.RelationshipIDPath && x.ColumnID == valueColumnID).Value); } } return(null); } } //return ""; }