public static SubGridRelationshipData ToSubGridRelationshipData( this Relationship relationship, Entity contextEntity, List <Entity> entities, Guid mainEntityId, string mainEntityRecordDisplayName) { var data = new SubGridRelationshipData(); data.Relationship = relationship; data.MainEntityId = mainEntityId; data.MainEntityRecordDisplayName = mainEntityRecordDisplayName; var otherContextEntityLogicalName = contextEntity.LogicalName == relationship.MainEntity ? relationship.RelatedEntity : relationship.MainEntity; data.RelatedEntity = entities.First(k => k.LogicalName == otherContextEntityLogicalName); data.MainEntityDisplayName = GetEntityDisplayName(relationship.MainEntity, entities); data.RelatedEntityDisplayName = GetEntityDisplayName(relationship.RelatedEntity, entities); if (!relationship.IsManyToMany) { data.RelatedAttributeDisplayName = entities.First(k => k.LogicalName == relationship.RelatedEntity) .Attributes.First(k => k.LogicalName == relationship.RelatedAttribute).DisplayName; } else { data.IntersectionDisplayableEntity = relationship.MainEntity == contextEntity.LogicalName ? GetEntityDisplayName(relationship.RelatedEntity, entities) : GetEntityDisplayName(relationship.MainEntity, entities); } return(data); }
private void UpdatedSelectedEntityRelationship(SubGridRelationshipData data) { if (data != null) { DrmGridInputData = null; DrmGridInputData = new DrmGridInputData() { Entity = data.RelatedEntity, FilterRelationship = data.Relationship, FilterRelationshipId = data.MainEntityId, FilterRelationshipRecordDisplayName = GetRecordDisplayName(), GenericEventManager = GenericEventManager, GenericManager = GenericManager, Relationships = Relationships, WpfEventManager = WpfEventManager, }; } }