public void Associate(IMany2ManyRelationshipMetadata relationship, IRecord record1, IRecord record2) { var associationRecord = new RecordObject(relationship.IntersectEntityName); associationRecord.SetField(relationship.Entity1IntersectAttribute, record1.Id, this); associationRecord.SetField(relationship.Entity2IntersectAttribute, record2.Id, this); _records.Add(associationRecord); }
public override IEnumerable <IRecord> GetRelatedRecords(IRecord recordToExtract, IMany2ManyRelationshipMetadata many2ManyRelationshipMetadata, bool from1) { var intersects = _records.Where( r => r.Type == many2ManyRelationshipMetadata.IntersectEntityName && r.GetStringField(from1 ? many2ManyRelationshipMetadata.Entity1IntersectAttribute : many2ManyRelationshipMetadata.Entity2IntersectAttribute) == recordToExtract.Id); var matchField = from1 ? many2ManyRelationshipMetadata.Entity2IntersectAttribute : many2ManyRelationshipMetadata.Entity1IntersectAttribute; var matchType = from1 ? many2ManyRelationshipMetadata.RecordType2 : many2ManyRelationshipMetadata.RecordType1; return (Clone(GetRecordsOfType(matchType).Where(r => intersects.Select(i => i.GetStringField(matchField)).Contains(r.Id)), null)); }
public virtual void CreateOrUpdate(IMany2ManyRelationshipMetadata relationshipMetadata) { throw new NotImplementedException(); }
public virtual IEnumerable <IRecord> GetRelatedRecords(IRecord recordToExtract, IMany2ManyRelationshipMetadata many2ManyRelationshipMetadata, bool from1) { throw new NotImplementedException(); }